iOS狀態(tài)欄frame計(jì)算問題的實(shí)現(xiàn)
我們知道除了iPhoneX以外的設(shè)備導(dǎo)航欄默認(rèn)高度都是20,當(dāng)然蘋果也為我們提供了計(jì)算狀態(tài)欄frame的方法:
[[UIApplication sharedApplication] statusBarFrame];
這個(gè)方法在正常情況下返回的狀態(tài)欄高度也是20,但當(dāng)正在通話時(shí),或者后臺(tái)有APP正在使用定位功能時(shí),頂部會(huì)出現(xiàn)兩種提示條:

正在通話.png

后臺(tái)有APP使用定位.jpeg
當(dāng)頂部有這兩種提示條出現(xiàn)時(shí),上面的statusBarFrame方法返回的狀態(tài)欄高度就變成了40,在手動(dòng)更改頂部約束的時(shí)候就會(huì)出現(xiàn)問題,最后沒找到解決方法,只能手動(dòng)改回20,感覺是有那么點(diǎn)low。
if (iPhoneX) {//x上不做任何改變
return rectStatus.size.height + rectNav.size.height;
} else {
if (rectStatus.size.height == 40) {//頂部有導(dǎo)航或者電話條時(shí),狀態(tài)欄高度系統(tǒng)方法計(jì)算錯(cuò)誤,手動(dòng)置為20
CGFloat fStatusBarHeight = 20;
return fStatusBarHeight + rectNav.size.height;
} else {
return rectStatus.size.height + rectNav.size.height;
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- iOS中封裝.framework及使用的方法詳解
- iOS中.a和.framework靜態(tài)庫的創(chuàng)建與.bundle資源包的使用詳解
- ios 不支持 iframe 的完美解決方法(兼容iOS&安卓)
- IOS 靜態(tài)庫和Framework區(qū)別
- IOS 圖文混排(CoreText.framework)詳解及實(shí)例
- iOS的XMPPFramework簡單介紹(實(shí)現(xiàn)及時(shí)通信)
- iOS10語音識(shí)別框架SpeechFramework應(yīng)用詳解
- iOS10 App適配權(quán)限 Push Notifications 字體Frame 遇到的問題
- IOS上iframe的滾動(dòng)條失效的解決辦法
- iOS制作framework靜態(tài)庫圖文教程
相關(guān)文章
IOS開發(fā)之判斷兩個(gè)數(shù)組中數(shù)據(jù)是否相同實(shí)例詳解
這篇文章主要介紹了IOS開發(fā)之判斷兩個(gè)數(shù)組中數(shù)據(jù)是否相同實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-02-02
iOS在Block中修改外部變量值的實(shí)現(xiàn)代碼
這篇文章主要介紹了iOS在Block中修改外部變量值的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-08-08
iOS將時(shí)間NSDate轉(zhuǎn)化為毫秒時(shí)間戳的方法示例
這篇文章主要給大家介紹了關(guān)于iOS將時(shí)間NSDate轉(zhuǎn)化為毫秒時(shí)間戳的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
iOS實(shí)現(xiàn)新年抽獎(jiǎng)轉(zhuǎn)盤效果的思路
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)抽獎(jiǎng)轉(zhuǎn)盤效果的思路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
Swift中的HTTP請求體Request Bodies使用示例詳解
這篇文章主要為大家介紹了Swift中的HTTP請求體Request Bodies使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02

