模仿UIAlertView,iOS模式对话框
来源:互联网 发布:淘宝特卖商城天天特价 编辑:程序博客网 时间:2024/05/19 04:52
转自:http://xubenyang.me/362
在程序UI设计上,很多情况我们会需要一种模式的对话框来进行操作。现有的iOS提供如下方式满足这种需求:
- UIAlertView
- UIViewController : - (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated
但是这两者明显都有不足,比如说UIAlertView官方只能显示title,message, buttons. 如果想要显示一个帐号密码输入框就不行)虽然网络上有一些程序员通过hack的方式实现了,http://stackoverflow.com/questions/376104/uitextfield-in-uialertview-on-iphone-how-to-make-it-responsive, 但是现在还是挺费劲的),所以想要随心所欲的在多样化模式对话框的UI界面标准的lib明显不能满足这个需求。于是我就实现了一个可以任意设置界面的模式对话框,叫 BYDialog.在给这个东西命名上,我想找一个好的前缀,但是一直没有更好的想法,所以就自恋地直接用自己的中文名的拼音开头作了前缀。
BYDialog核心思想:
- 新建一个UIWindow,其windowLevel比UIWindowLevelStatusBar大一点,这样就可以让显示的内容完全覆盖status bar了。
- UIWindow背景透明,然后添加一个拥有灰灰背景图片的UIImageView,暂且加maskview。这样原来的内容就会有像UIAlertView一样的淡化效果,突出显示模式对话框的内容。
- 在UIWindow中添加BYDialog(是UIView的subclass),BYDialog并显示bounce动画效果。
这样就能够像UIAlertView一现显示出来了:)
如何自定义BYDialog用户界面:(具体可以参考TestDialog的实现)
- subclass BYDialog, 然后必须改写- (void)loadContentView,并提供你自己想要显示的UI内容,注意这个内容要适当大小,不要超出屏幕大小。
- override - (void)willPresentDialog;- (void)didPresentDialog;- (void)willDismissDialog;- (void)didDismissDialog;并响应这种事件消息。
- 可以为自己的类提供各种delegate函数,根据以上捕捉到的事件消息或者其他地方,触发delegate函数调用。
所以整个UIAlertView 模仿过程完成了,效果如截图:
---------------------------------------------
源代码地址:
Google Code : http://code.google.com/p/bydialog/
- 模仿UIAlertView,iOS模式对话框
- 自定义 模式对话框 ios iphone ipad (模仿UIAlertView)
- IOS-- UIAlertView(对话框)
- Android仿IOS UIAlertView对话框
- Android仿IOS UIAlertView对话框
- Android仿IOS UIAlertView对话框
- Android仿IOS UIAlertView对话框
- iOS开发 对话框UIActionSheet和UIAlertView用法
- iOS开发 对话框UIActionSheet和UIAlertView用法
- 对话框UIAlertView
- ios-day05-05(创建弹框(对话框),UIAlertView、UIActionSheet)
- IOS UIAlertView
- iOS UIAlertView
- ios UIAlertView
- iOS---UIAlertView
- IOS UIAlertView
- ios UIAlertView
- UIAlertController & UIAlertView 对话框
- JVM调优总结 -Xms -Xmx -Xmn -Xss
- Tomcat性能调优
- java学习之小技巧(更新)
- 仿QQ聊天软件及源码java版
- Chrome给力的更新
- 模仿UIAlertView,iOS模式对话框
- CSS打造的一个永远在页面最底端(页脚)的样式
- VS.NET2005编写的程序在没有.NET FRAMWORK环境下的运行方法!
- 转前端推荐书籍
- 图片按钮提交表单
- 15件事造就有理想的程序员
- mysql数据库操作
- 在win7系统中安装SQL2005出现29506错误码的解决方案
- C#开发串口总结,并提炼串口辅助类到公用类库中