push的時(shí)候頁面卡頓問題

在從A界面push到B界面的時(shí)候,頁面會(huì)出現(xiàn)卡頓問題,這是怎么回事呢?怎么避免這個(gè)問題?

(1)什么情況下會(huì)出現(xiàn):
從A控制器push到B控制器的時(shí)候,如果B控制器沒有設(shè)置它的self.view的背景顏色的話,就會(huì)出現(xiàn)頁面“卡頓”的現(xiàn)象,尤其是當(dāng)A界面上有控件的時(shí)候卡頓現(xiàn)象很明顯。

(2)產(chǎn)生原因:
產(chǎn)生原因是,1.UIViewController的默認(rèn)顏色都是透明的;2.push的時(shí)候,B頁面先覆蓋在A頁面上面,然后A頁面從又往左的移出去。綜合上面兩個(gè)原因?qū)е碌摹翱D”現(xiàn)象。

網(wǎng)上有說是因?yàn)橥该黝伾B加導(dǎo)致的色值問題,感覺挺有意思,兩個(gè)透明顏色的疊加會(huì)出現(xiàn)這個(gè)問題?透明顏色疊加不也是透明嗎?

(3)具體原因:
A和B的頁面背景都是透明的,push時(shí),B覆蓋在A上面,這時(shí)候,透過B頁面,是能看見B頁面的控件的。B頁面要從又往左側(cè)移出屏幕,這是需要一個(gè)過程的,而這個(gè)過程呈現(xiàn)在用戶的眼前就是“卡頓”了一下。

(4)實(shí)質(zhì):
其實(shí)不是頁面卡頓了,而是頁面透明,通過B頁面看見了A頁面從又往左移除屏幕的過程。

(5)解決
一般的只要B頁面的頁面顏色不是透明的就不會(huì)看到這種“卡頓”的現(xiàn)象。解決辦法就是給B頁面加個(gè)背靜顏色。后者在所有UIViewController的基類連設(shè)置背景色,使其不是透明的就行了。

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

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,324評(píng)論 25 708
  • 原創(chuàng)/盧盧 第十八章 喜旺發(fā)現(xiàn)那道紅是人的模樣。他看到的只是人的背影。但此時(shí),喜旺已根據(jù)自己聽來的“知識(shí)”積累,知...
    AB774盧盧閱讀 379評(píng)論 2 1

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