关于UIWindow的一些认识和理解

项目中有类似 微信 按住说话的功能 ,点击按钮 需要在所有界面的最上层展示,所以这很适合用一个UIWindow来实现
- (UIWindow *)overlayWindow {
    if(!overlayWindow) {
        overlayWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
        overlayWindow.userInteractionEnabled = YES;
        overlayWindow.backgroundColor = RGB(0, 0, 0, 0.5);
        [overlayWindow makeKeyAndVisible];
        
    }
    return overlayWindow;
}

UIWindow 创建完成自动被添加到整个界面上,默认是hidden= yes, 可以通过 [window makeKeyAndVisible] 或者 hidden= no 使得window 可见 , 如果我们创建的UIWindow 需要处理键盘事件 就需要把他设置成 keyWindow. 我们可以通过 makeKeyWindow 和 resignKeyWindow 方法。

  • 设置userInteractionEnabled = yes 是因为触摸事件传递到window上 否则 window 下面的view 可以接受手势。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 7,311评论 1 14
  • UIWindow 简介 一个UIWindow对象为应用程序的用户界面提供了背景以及重要的事件处理行为。UIWind...
    ripperhe阅读 23,748评论 24 58
  • UIView的功能 负责渲染区域的内容,并且响应该区域内发生的触摸事件 UIWindow 在iOS App中,UI...
    小蘑菇2阅读 4,138评论 4 5
  • 关键步骤 一个程序从main函数开始启动。代码如下: int main(int argc, char * argv...
    JzRo阅读 3,693评论 0 2
  • 简单的悬浮小球demo下载地址 1.UIWindow简介 一个UIWindow对象为应用程序的用户界面提供了背景以...
    雷鸣1010阅读 13,534评论 2 7