關(guān)于UIWindow的一些認(rèn)識和理解

項目中有類似 微信 按住說話的功能 ,點(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 可以接受手勢。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • *7月8日上午 N:Block :跟一個函數(shù)塊差不多,會對里面所有的內(nèi)容的引用計數(shù)+1,想要解決就用__block...
    炙冰閱讀 2,542評論 1 14
  • UIWindow 簡介 一個UIWindow對象為應(yīng)用程序的用戶界面提供了背景以及重要的事件處理行為。UIWind...
    ripperhe閱讀 23,664評論 24 58
  • UIView的功能 負(fù)責(zé)渲染區(qū)域的內(nèi)容,并且響應(yīng)該區(qū)域內(nèi)發(fā)生的觸摸事件 UIWindow 在iOS App中,UI...
    小蘑菇2閱讀 796評論 4 5
  • 關(guān)鍵步驟 一個程序從main函數(shù)開始啟動。代碼如下: int main(int argc, char * argv...
    JzRo閱讀 601評論 0 2
  • 簡單的懸浮小球demo下載地址 1.UIWindow簡介 一個UIWindow對象為應(yīng)用程序的用戶界面提供了背景以...
    雷鳴1010閱讀 10,419評論 2 7