把UIView覆蓋到狀態列上的方法
阿新 • • 發佈:2019-01-24
最近上的一個新聞閱讀軟體 Reeder 更新了, 非常好用, 穩定,而且速度飛快. 用了之後 我立馬就把原來的 Byline 刪除了.
這個軟體征服我這個吹毛求疵的人的一個地方, 其實在於一個小細節, 有了這個細節, 我覺得, 這軟體值了!
這個細節就是系統狀態列圖示, 從來沒有一個程式在狀態列上做文章, Reeder 做到了, 新聞的重新整理, 圖片載入, 在系統狀態列上顯示, 顯得非常的蘋果味道, 如圖:
當然, 本文是討論技術, 不是軟體評測.
國外好多論壇上在問這個問題,但答案都是需要Private API之類的,無法上Store的方法. 但是Reeder怎麼可以? 我也得可以才行 :) ,經過一段時間的琢磨, 我知道了這個實現方法, 分享給大家.
方法的原理就是, 生成一個新的UIWindow, 把這個Window放在狀態列之上! 其實這個效果早在2.0的時候就能實現, 只是我們這些不求甚解, 學習不紮實的人沒有注意到罷了.那具體怎麼做, 我先賣個關子, 大家自己根據這思路研究一下, 其實, 很簡單, 很簡單, 我幾天後公佈答案 :) 不要搶答噢 嘎嘎~~~
公佈答案:首先 繼承 UIWindow, init的方法: 關鍵的語句 self.windowLevel=UIWindowLevelAlert;