pjk1129专栏

技术博客,仅供学习之用,不作其它用途,如有涉及版权,请告知,谢谢!

IOS悬浮窗口之——Popover实现原理分析

目前那些popover的menu,loadingview之类的都是搞view,可以解决。但显示的时候其实挺麻烦的,得先保证全屏,在addsubview,消失时又得removefromsuperview,还得保证这个view在最上层,代码得可重用度也不高。

其实iphone程序是支持多窗口显示得,而且还支持分层显示,就是设置window得windowlevel。Mac上有类似的属性可以得到很多不同效果的window显示。

那我们完全可以alloc一个window,并让之成为keywindow,那么所有的touch事件都会被它捕获到。并且它是个view啊,那就可以addsubview,可以设置backgroundcolor,那么问题就简单了,大家应该可以理解ipad 上的popoverwindow原理了。

那就是生成一个fullscreen的windowlevel为UIWindowAlertLevel的window,且backgroundcolor为clearcolor,然后把要显示的controller的view加到subview,并且在drawrect中围绕这个view的周围画上边框,在弹出点画上个箭头,最后以动画的方式显示出来就好啦,然后点击window空白地方时让它动画消失即可。

那UIAlertView就更简单了,虽然它是继承自UIView,但它的实现应该跟UIWindow差不到哪里去,其实它内部也应该是个window,根据不同的subviews设置不同的内容高度,调整内容的size等。


代码实现地址:http://www.cocoachina.com/bbs/read.php?tid-30657.html

阅读更多
想对作者说点什么? 我来说一句

ios悬浮窗实现demo

2015年04月15日 155KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭