這篇文章給大家分享的是有關(guān)iOS中導(dǎo)航欄pop返回時(shí)出現(xiàn)黑塊怎么辦的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站與策劃設(shè)計(jì),大竹網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:大竹等地區(qū)。大竹做網(wǎng)站價(jià)格咨詢:13518219792問題描述:
導(dǎo)航欄正常從A頁面push到B頁面,從B頁面pop返回A頁面時(shí)遇到過渡過程中導(dǎo)航欄出現(xiàn)黑塊的問題。
如截圖所示:
問題原因:
A界面導(dǎo)航欄被影藏,B頁面的導(dǎo)航欄存在。過渡的時(shí)候沒有動(dòng)畫。
解決方案:
1.在A頁面中添加影藏導(dǎo)航過渡動(dòng)畫
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.setNavigationBarHidden(true, animated: true) //避免的出現(xiàn)返回時(shí)導(dǎo)航欄的黑塊 }
override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) self.navigationController?.setNavigationBarHidden(false, animated: true) }
注意:如果使用self.navigationController.isNavigationBarHidden = true 就會(huì)出現(xiàn)黑塊問題。 如果A頁面在tableViewController中,切換tab時(shí)就有可能導(dǎo)致該界面閃動(dòng)。
優(yōu)點(diǎn),不用在自push中再去設(shè)置每一個(gè)過渡
2.在B頁面添加過渡動(dòng)畫
override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) self.navigationController?.setNavigationBarHidden(true, animated: true) }
缺點(diǎn):在每一個(gè)子頁面(包括子頁面的子頁面)中都需要設(shè)置
3.設(shè)置window的背景顏色為主題色,這樣就不會(huì)出現(xiàn)黑塊,但是還是會(huì)出現(xiàn)分層和界面不協(xié)調(diào)的問題。不建議使用
感謝各位的閱讀!關(guān)于“iOS中導(dǎo)航欄pop返回時(shí)出現(xiàn)黑塊怎么辦”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。