iOS下拉选择菜单(DropDownMenu)

由于项目需要大量的下拉选择菜单,然后去GitHub上找了一下,并没有太好的,下了一个后发现用起来有bug,就修改并完善了一下。现在可以完美适应UIView和UITableView。

1. 示例如下(动图有6.6M,加载可能需要时间):

DEMO演示


2. 先上demo:GitHub

3. 说一下实现思路:

    (1)下拉菜单使用tableview实现;

    (2)点击选择按钮后,根据按钮在self.view的frame来确定菜单要显示或隐藏的位置,并使用菜单的tag值来确定是关闭还是打开。对于frame的确定,由于在UITableView中,按钮是加在cell的contentview上的,所以在UITableView中,要使用  [button.superview convertRect:button.frame toView:self.view]  方法来获得按钮在self.view上的frame。

    (3)在点击按钮后,要隐藏其它的下拉选择菜单。

    (4)打开和隐藏菜单都是通过动画来实现的,代码如下。

[UIView beginAnimations:nil context:nil];

。。。。

[UIView commitAnimations];

    (5)在点击了菜单的选项后,隐藏这个菜单(这一步通过代理实现),并将文字显示到按钮上。

4. 使用方法

Demo里面有一个XDSDropDownMenu文件夹,直接拖入到你的项目中。

然后#import "XDSDropDownMenu.h"

至于后面怎么使用,可以去看我的Demo,代码的注释写的很详细。里面分了在UIView和UITballeView中的使用方法,其实,在两个中的使用大多代码是一样的,只是获取按钮在self.view的坐标不一样。

如果你的按钮的frame使用的不太对的话,会造成一些“特效”——菜单消失的位置会有变化,其实也挺好玩的,想试一下的同学可以试一下不同的frame。

参考的GitHub的Demo:NIDropDown(但是这个用起来会有bug)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。