文档章节

学习笔记:对下拉菜单的简单封装

不孤独的美食家
 不孤独的美食家
发布于 2015/10/20 20:37
字数 487
阅读 307
收藏 4

                                                第一部分  实现效果

当我们点击一下标题按钮时,就弹出一个下拉菜单,点一下其他地方,下拉菜单退出或者从屏幕上消失

效果如下图:

当我们点击一下首页的时候,弹出下拉菜单,效果如下图(当然图片还未做处理)


                                           第二部分  封装思路

当我们点击标题按钮时,会弹出菜单,而且有文字,有图片,那么这个控件应该就是按钮,它既可以响应点击事件,也可以设置图片文字。

那么,这个下拉菜单应该是个什么控件好了,也就是应该继承自那个控件好了?作为其他控件的容器,选UIVIew是最合适的了,选好了容器。接下来就是它的实际需求了。

一 显示在谁的身上?

二 什么时候应该销毁?

三 它里面应该放些什么了?而菜单里面的东西又应该归谁了?

为了不被其他任何控件遮挡住,他应该要放在当前窗口的上面。它里面还要有内容,所以应该申明一个UIView的属性去保存,而这个View的管理由谁去引用管理了,应该是个控制器。

既然谈到了封装,那就应该有一个类方法,方便快捷的创建这个下拉菜单控件,它的.h头文件声明如下

.m文件的初始化方法如下图


第三步 重写他的setter方法


第四步  实现.h文件中的方法

第五步 为了监听菜单的消失或者显示,需要监听,所以设置他的代理去监听就行了,


下面是他的具体使用



© 著作权归作者所有

共有 人打赏支持
不孤独的美食家
粉丝 88
博文 159
码字总数 48705
作品 1
长沙
高级程序员
Bootstrap响应式前端框架笔记七——下拉菜单

Bootstrap响应式前端框架笔记七——下拉菜单 在Bootstrap的Css框架中,下拉菜单属于组件。一个完整的下拉菜单应该有两部分组成,一个触发按钮与一个选项列表。触发按钮dropdown-toggle类来创...

珲少
2016/12/09
52
0
bootstrap.js学习笔记

模态弹出框 Bootstrap框架中的模态弹出框,分别运用了“modal”、“modal-dialog”和“modal-content”样式,而弹出窗真正的内容都放置在“modal-content”中,其主要又包括三个部分: ☑ 弹...

_好久不见
2015/11/05
0
0
C#可扩展编程之MEF学习笔记(一):MEF简介及简单的Demo

  在文章开始之前,首先简单介绍一下什么是MEF,MEF,全称Managed Extensibility Framework(托管可扩展框架)。单从名字我们不难发现:MEF是专门致力于解决扩展性问题的框架,MSDN中对MEF...

雲霏霏
2014/08/19
0
0
Bootstrap学习笔记(二)

7.响应式表单 表单组样式:将和表单元素包含其中,可以获得更好的排列 表单元素样式:常用于、、元素 内联表单样式(用于form表单):可以使元素一行显示 在一侧加入附加内容 或 类应用到一系...

Mr_欢先生
2017/11/02
0
0
bootstrap3 - 按钮下拉菜单

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>按钮下拉菜单</title> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1"/> <link href......

iNiL0119
2015/09/28
147
0

没有更多内容

加载失败,请刷新页面

加载更多

简易审计系统

1、有时候我们需要对线上用户的操作进行记录,可以进行追踪,出现问题追究责任,但是linux自带的history并不会实时的记录(仅仅在内存中,当用户正常退出(exit logout )时才会记录到history文件里...

芬野de博客
15分钟前
1
0
Qt那些事0.0.6

QML中使用Image,在设置source的后,通过Qt Quick2 Preview(qmlscene)遇到了图片找不到的问题: Image { id: success_img anchors.centerIn: parent ...

Ev4n
16分钟前
1
0
白话SpringCloud | 第十一章:路由网关(Zuul):利用swagger2聚合API文档

前言 通过之前的两篇文章,可以简单的搭建一个路由网关了。而我们知道,现在都奉行前后端分离开发,前后端开发的沟通成本就增加了,所以一般上我们都是通过swagger进行api文档生成的。现在由...

oKong
22分钟前
2
0
javah 生成jni文件的问题

命令:(on macbook for android) javah -d src/main/jni -jni -classpath /Users/Carlyle_Pro/Documents/android_adt/sdk/platforms/android-25/android.jar:build/intermediates/classes/......

Carlyle_Lee
24分钟前
1
0
Ubuntu 安装ssh服务以及开启root用户ssh登录

一、安装ssh服务 安装ssh服务 sudo apt-get update sudo apt-get install openssh-server 安装完成后启动ssh服务 sudo service ssh start 二、开启root用户ssh登录 解决root远程ssh不能登录,...

15834278076
44分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部