溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

iOS狀態(tài)欄frame計算問題的實(shí)現(xiàn)

發(fā)布時間:2020-09-28 13:56:27 來源:腳本之家 閱讀:124 作者:weakTong 欄目:移動開發(fā)

我們知道除了iPhoneX以外的設(shè)備導(dǎo)航欄默認(rèn)高度都是20,當(dāng)然蘋果也為我們提供了計算狀態(tài)欄frame的方法:

[[UIApplication sharedApplication] statusBarFrame];

這個方法在正常情況下返回的狀態(tài)欄高度也是20,但當(dāng)正在通話時,或者后臺有APP正在使用定位功能時,頂部會出現(xiàn)兩種提示條:

iOS狀態(tài)欄frame計算問題的實(shí)現(xiàn)

正在通話.png

iOS狀態(tài)欄frame計算問題的實(shí)現(xiàn)

后臺有APP使用定位.jpeg

當(dāng)頂部有這兩種提示條出現(xiàn)時,上面的statusBarFrame方法返回的狀態(tài)欄高度就變成了40,在手動更改頂部約束的時候就會出現(xiàn)問題,最后沒找到解決方法,只能手動改回20,感覺是有那么點(diǎn)low。

if (iPhoneX) {//x上不做任何改變
    return rectStatus.size.height + rectNav.size.height;
  } else {
    if (rectStatus.size.height == 40) {//頂部有導(dǎo)航或者電話條時,狀態(tài)欄高度系統(tǒng)方法計算錯誤,手動置為20
      CGFloat fStatusBarHeight = 20;
      return fStatusBarHeight + rectNav.size.height;
    } else {
      return rectStatus.size.height + rectNav.size.height;
    }
  }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI