? ? ? ? 今天工作不是很繁忙仍劈,突然看到APP里的分享界面上無法被陰影遮蓋住的狀態(tài)欄库北,頓生想要解決這個視而不見已久問題的想法。
? ? ? ? 之前的做法一直都是直接把陰影視圖直接add到keyWindow上靴寂,這樣的做法是無法把狀態(tài)欄壓在身下的荆永。其實之前思考過這個問題,感覺和window有關(guān)般渡。今天隨便一搜懒豹,發(fā)現(xiàn)UIWindowLevel這么個玩意,瞬間秒懂驯用。是不是我把window的這個屬性設(shè)置成UIWindowLevelAlert就能和UIAlertView一樣蓋住狀態(tài)欄了呢脸秽。
? ? ? ? 嗯。沒錯蝴乔。记餐。機智的我立馬在原來代碼里把keyWindow的windowLevel設(shè)置成了UIWindowLevelAlert,在移除陰影后把keyWindow的level設(shè)置為normal淘这。剥扣。Amazing巩剖,狀態(tài)欄果然被蓋住了铝穷。但是不是被陰影而是被整個keyWindow蓋住了。
? ? ? ? 機智的我瞬間明白了其中的奧妙佳魔,隨即想出了替代方案曙聂,自己創(chuàng)建一個window,將其level設(shè)置成UIWindowLevelAlert鞠鲜,把陰影加到上面去宁脊,makeKeyAndVisible断国。然后在要消失陰影的時候讓之前的keyWindow,makeKeyAndVisible榆苞,再把自己創(chuàng)建的window置為空稳衬,完美~
? ? ? ? 試了一下,效果拔群坐漏。哦吼薄疚,機智的我又想到了,既然這么多地方都用到赊琳,干脆寫個小輪子得了街夭。
? ? ? ? 然后,重點來了躏筏,當我把在APP工程里的行為復刻到新建的工程里板丽,發(fā)現(xiàn)效果并不像在APP里一樣,自己創(chuàng)建的window并沒有消失趁尼。只有當我在點擊一下屏幕時埃碱,window才會消失并被釋放。
寫了那么多沒用的酥泞,其實我想說的就是以下幾點乃正,也是今天對于UIWindow的發(fā)現(xiàn)。
1婶博、要讓自己創(chuàng)建的window顯示出來有兩種方法:
? ? ? ? 1瓮具、makeKeyAndVisible
? ? ? ? 2、直接設(shè)置它的hidden屬性為NO