當前位置:編程學習大全網 - 編程語言 - iOS UIWindow UIWindowLevel 使用

iOS UIWindow UIWindowLevel 使用

前言:大家都知道在安卓上的window 有相關的level,那麽iOS上是不是也有相關的level呢?其實是有的只不過iOS的開發不常用而已

先簡單說壹下UIWindow的幾個方法

這樣建立的window 的windowLevel 是 0 hidden 是 YES

顯示壹個UIWindow,同時設置為keyWindow,並將其顯示在 同壹windowLevel 的其它任何UIWindow之上,此時其Hidden會自動變成NO

官方解釋 // convenience. most apps call this to show the main window and also make it key. otherwise use view hidden property

設置keyWindow與否並不當前影響視圖層級顯示,僅來接收鍵盤及其它非觸摸事件。如果沒有專門設置過keyWindow的hiden為NO,而且也沒有其它非隱藏的UIWindow,那麽APP會黑屏

如果想解除keywindow

resignKeyWindow

[[UIApplication sharedApplication] keyWindow]獲取正在顯示的UIWindow是極其不準確的,下面會有例子解釋這個概念

通過log 可以發現新的window 追加在了數組後面 0x10060be90 level 0.0 (新建的normal window)

在normal上新建壹個statusBar 的window

通過log 可以發現新的window 追加在了數組後面 0x100320be0 (level 1000.0) 現在數組中是4個數據

那麽如果接下來增加壹個 level 是normal的window 如何

通過log 可以發現新的window 追加在了數組多了壹個 0x10031fd10 (level 0.0) 並且是追加在了 0x10060be90 level 0.0 後面 但是最後打印的依舊是 0x100320be0 ,由此可見,要優先顯示創建的windowLevel 必須大於等於當前的level才會展示在上層。

註意

以上的keyWindow都是 **0x1003093f0 **如下圖

結論

2.創建壹個window 默認使用UIWindowLevelNormal 0.0 系統默認的keyWindow 的windowLevel 是 Normal 那麽 要優先顯示創建的windowLevel 必須大於等於當前的window level 才會展示在上層。

  • 上一篇:求所有在翡翠臺和本港臺演過的機器人動畫片,回答後就加200分
  • 下一篇:數控編程中的極坐標功能
  • copyright 2024編程學習大全網