解決MJRefresh在iOS11系統(tǒng)中上拉加載更多界面發(fā)生滾動(dòng)條偏移

1,出現(xiàn)該問題的原因:

這個(gè)應(yīng)該是UITableView最大的改變。我們知道在iOS8引入Self-Sizing之后,我們可以通過實(shí)現(xiàn)estimatedRowHeight相關(guān)的屬性來(lái)展示動(dòng)態(tài)的內(nèi)容,實(shí)現(xiàn)了estimatedRowHeight屬性后,得到的初始contenSize是個(gè)估算值,是通過estimatedRowHeight乘以 cell的個(gè)數(shù)得到的,并不是最終的contenSize,只是當(dāng)前屏幕能夠顯示的cell個(gè)數(shù),滑動(dòng)時(shí),tableView不停地得到新的cell,更新自己的contenSize。

Self-Sizing在iOS11下是默認(rèn)開啟的,Headers, footers, and cells都默認(rèn)開啟Self-Sizing,所有estimated高度默認(rèn)值從iOS11之前的 0改變?yōu)閁ITableViewAutomaticDimension:

如果目前項(xiàng)目中沒有使用estimateRowHeight屬性,在iOS11的環(huán)境下就要注意了,因?yàn)殚_啟Self-Sizing之后,tableView是使用estimateRowHeight屬性的,這樣就會(huì)造成contentSize和contentOffset值的變化,如果是有動(dòng)畫是觀察這兩個(gè)屬性的變化進(jìn)行的,就會(huì)造成動(dòng)畫的異常,因?yàn)樵诠浪阈懈邫C(jī)制下,contentSize的值是一點(diǎn)點(diǎn)地變化更新的,所有cell顯示完后才是最終的contentSize值。因?yàn)椴粫?huì)緩存正確的行高,tableView reloadData的時(shí)候,會(huì)重新計(jì)算contentSize,就有可能會(huì)引起contentOffset的變化。

2,解決方案:關(guān)閉默認(rèn)開啟的選項(xiàng)

if (@available(iOS 11.0, *)) {

        _tableView.estimatedRowHeight = 0;

        _tableView.estimatedSectionFooterHeight = 0;

_tableView.estimatedSectionHeaderHeight=0 _tableView.contentInsetAdjustmentBehavior= UIScrollViewContentInsetAdjustmentNever;

    }

原文:https://blog.csdn.net/u012498386/article/details/79552820

最后編輯于
?著作權(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)容

  • 我們?cè)谏弦黄锻ㄟ^代碼自定義不等高cell》中學(xué)習(xí)了tableView的相關(guān)知識(shí),本文將在上文的基礎(chǔ)上,利用sto...
    啊世ka閱讀 1,658評(píng)論 2 7
  • iOS 11 為整個(gè)生態(tài)系統(tǒng)的 UI 元素帶來(lái)了一種更加大膽、動(dòng)態(tài)的新風(fēng)格。 本文介紹iOS11中在UI方面做了哪...
    阿凡提說AI閱讀 641評(píng)論 0 1
  • 前言 蘋果WWDC開發(fā)者大會(huì)上,終于發(fā)布了大家期待已久的iOS 11,有些新特性功能確實(shí)出人意料。不過大的方面蘋果...
    Mr_Say_Yes閱讀 3,468評(píng)論 6 15
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,674評(píng)論 1 32
  • 這個(gè)應(yīng)該是UITableView最大的改變。我們知道在iOS8引入Self-Sizing之后,我們可以通過實(shí)現(xiàn)es...
    有蟲吃閱讀 1,904評(píng)論 0 2

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