项目中有类似 微信 按住说话的功能 ,点击按钮 需要在所有界面的最上层展示,所以这很适合用一个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 可以接受手势。
网友评论