iphonex 導(dǎo)航欄適配,IOS正確解決隱藏nabber后push、pop閃黑問題

IOS正確解決隱藏nabber后push、pop閃黑問題

只需要在頁面添加這樣的代碼就可以解決 (ps: 看我最新一篇文章,里面有demo關(guān)于這個問題的)


iphonex 導(dǎo)航欄適配

1.第一種。就是導(dǎo)航欄隱藏。自定義假的view。我這里做的就是對于跳轉(zhuǎn)到某個界面。然后把它的導(dǎo)航欄隱藏。寫入假的導(dǎo)航欄,自定義view 的約束。這里是用自定義view相對于安全區(qū)域而言加的約束。



2.第二種。設(shè)置導(dǎo)航欄透明度。


主要就是通過設(shè)置導(dǎo)航欄的透明度來創(chuàng)建它的假象。改變tableview 的frame。讓它一開始就往上偏移導(dǎo)航欄的高度

最關(guān)鍵的代碼還是對導(dǎo)航欄的擴展。其實就是在導(dǎo)航欄底部自己畫一個view加進去。然后改變這個view的透明度來顯示導(dǎo)航欄的顏色。當(dāng)導(dǎo)航欄不為透明時。把這個view移除。展示導(dǎo)航欄自己的顏色。

import UIKit

var UIViewControllerOverlayKey: UInt8 = 0

extension UINavigationBar {

var overlay: UIView? {

get{

return objc_getAssociatedObject(self, &UIViewControllerOverlayKey

) as? UIView

}

set{

objc_setAssociatedObject(self, &UIViewControllerOverlayKey, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)

}

}

func j_setDefaultBackgroundColor( _ backgroundColor: UIColor ) {

self.j_reset()

if self.overlay == nil {

self.barTintColor = ThemeColor.j_changeFromTranslucent()

self.isTranslucent = true

self.setBackgroundImage(UIImage(), for: .default)

self.shadowImage = UIImage()

self.overlay = UIView(frame: CGRect(x: 0, y: 0, width: kWidth, height: kNavBarHeight))

self.subviews.first?.insertSubview(self.overlay!, at: 0)

}

self.overlay?.backgroundColor = backgroundColor

self.j_setAlpha(0)

}

func? j_setAlpha( _ alpha: CGFloat ) {

self.overlay?.alpha = alpha

}

func j_reset( _ isTranslucent: Bool = false ) {

if !isTranslucent {

self.isTranslucent = false

self.setBackgroundImage(UIImage.j_image(with: ThemeColor), for: .default)

}

self.barTintColor = ThemeColor

self.overlay?.removeFromSuperview()

self.overlay = nil

}

}



這個demo雖然不是主要講解這個導(dǎo)航欄的。但是我里面都實現(xiàn)了這個功能

demo 地址:?https://github.com/zhuhaiyan/AsyndisplayDemo

如果有問題??梢约游襋Q交流。我是小白。還望多多賜教。QQ: 2287611141

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 最近ios10.0發(fā)布,發(fā)現(xiàn)app在系統(tǒng)10.0下運行,導(dǎo)航欄出現(xiàn)了若干bug,遂著手解決之。 1.復(fù)現(xiàn): 在io...
    sxtra閱讀 4,126評論 3 5
  • 1.不可變數(shù)組轉(zhuǎn)變?yōu)榭勺償?shù)組聲明實例變量的數(shù)組 必須記得實現(xiàn) 對于遍歷數(shù)組找到對象后 如果還需要查找 記得先結(jié)束 ...
    小新xin閱讀 1,032評論 0 1
  • 1、設(shè)置UILabel行間距 NSMutableAttributedString* attrString = [[...
    十年一品溫如言1008閱讀 2,029評論 0 3
  • 1、設(shè)置UILabel行間距 NSMutableAttributedString* attrString = [[...
    FF_911閱讀 1,497評論 0 3
  • 文/度仔媽咪. 孩子的生命,只有被真正的看見時,才能得以開花。 01 此時此刻,妞甜蜜的睡著了。 媽咪想起昨晚在小...
    Suven閱讀 444評論 0 2

友情鏈接更多精彩內(nèi)容