其实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的周围画上边框,在d出点画上个箭头,最后以动画的方式显示出来就好啦,然后点击window空白地方时让它动画消失即可。
那UIAlertVIEw就更简单了,虽然它是继承自UIVIEw,但它的实现应该跟UIWindow差不到哪里去,其实它内部也应该是个window,根据不同的subvIEws设置不同的内容高度,调整内容的size等。
代码实现地址:http://www.cocoachina.com/bbs/read.php?tid-30657.html
总结以上是内存溢出为你收集整理的IOS悬浮窗口之——Popover实现原理分析全部内容,希望文章能够帮你解决IOS悬浮窗口之——Popover实现原理分析所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)