項目中有類似 微信 按住說話的功能 ,點(diǎn)擊按鈕 需要在所有界面的最上層展示,所以這很適合用一個UIWindow來實(shí)現(xiàn)
- (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 創(chuàng)建完成自動被添加到整個界面上,默認(rèn)是hidden= yes, 可以通過 [window makeKeyAndVisible] 或者 hidden= no 使得window 可見 , 如果我們創(chuàng)建的UIWindow 需要處理鍵盤事件 就需要把他設(shè)置成 keyWindow. 我們可以通過 makeKeyWindow 和 resignKeyWindow 方法。
- 設(shè)置userInteractionEnabled = yes 是因?yàn)橛|摸事件傳遞到window上 否則 window 下面的view 可以接受手勢。