文档章节

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

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

                                                第一部分  实现效果

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

效果如下图:

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


                                           第二部分  封装思路

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

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

一 显示在谁的身上?

二 什么时候应该销毁?

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

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

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

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


第三步 重写他的setter方法


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

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


下面是他的具体使用



© 著作权归作者所有

共有 人打赏支持
不孤独的美食家
粉丝 89
博文 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
小蚂蚁学习Bootstrap(1)——导航条的设置和下拉菜单

久闻Bootstrap的大名,也没有亲手实践过,真是让人手痒的。这也难怪,后端的逻辑往往忙活的令人不可开交,平时几乎没有机会来做前端的东西。前两天在动弹里看到有人吐槽,话说什么一个java程...

嗜学如命的小蚂蚁
2015/11/07
0
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Ubuntu18.04 显卡GF-940MX安装NVIDIA-390.77

解决办法: 下面就给大家一个正确的姿势在Ubuntu上安装Nvidia驱动: (a)首先去N卡官网下载自己显卡对应的驱动:www.geforce.cn/drivers (b)下载后好放在英文路径的目录下,怎么简单怎么来...

AI_SKI
今天
1
0
深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
今天
1
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
今天
0
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
3
0
openJDK之sun.misc.Unsafe类CAS底层实现

注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html 1.sun.misc.Unsafe中CAS方法 在sun.misc.Unsafe中CAS方法如下: compareAndSwapObject(java.lang.Object arg0, long a......

汉斯-冯-拉特
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部