UITableview重新整理時介面“亂跑”現象
專案中出現重新整理tableview介面時,會發生介面跳到別的地方,而不是停留在當前操作的動態部分,這是因為iOS 11.0系統的特性導致的。
Self-Sizing在iOS11下是預設開啟的,Headers, footers, and cells都預設開啟Self-Sizing,所有estimated 高度預設值從iOS11之前的 0 改變為UITableViewAutomaticDimension
estimatedRowHeight這個屬性是給tableView每行設定預估行高,如果目前專案中沒有使用estimateRowHeight屬性。
在iOS11的環境下就要注意了,因為開啟Self-Sizing之後,tableView是使用estimateRowHeight屬性的,這樣就會造成contentSize和contentOffset值的變化,在估算行高機制下,contentSize的值是一點點地變化更新的,所有cell顯示完後才是最終的contentSize值。因為不會快取正確的行高,tableView reloadData的時候,會重新計算contentSize,就有可能會引起contentOffset的變化,就出現上述奇怪的現象。
解決方法:
在appdelegate.m檔案中,加上這幾句程式碼:
//可以通過以下方式禁用
if (@available(iOS 11.0, *)) {
UITableView.appearance.estimatedRowHeight = 0;
UITableView.appearance.estimatedSectionFooterHeight = 0;
UITableView.appearance.estimatedSectionHeaderHeight = 0;
}
相關文章
- Jmeter json格式 unicode亂碼現象解決方法JMeterJSONUnicode
- ubuntu登入時出現“一閃之後回到登入介面”的現象Ubuntu
- dmesg 時間誤差現象
- 小程式的亂象迷局
- 春分時節不容“疫”,全球網路環境亂象橫生
- requests介面響應出現亂碼
- 熊市之下的交易所亂象
- 從影視劇到遊戲,短視訊侵權亂象何時休?遊戲
- 網路直播亂象咋這麼“頑強”?
- 橫掃鴻蒙彈窗亂象,SmartDialog出世鴻蒙
- 深圳交警聯手摩拜單車,共同整治共享單車亂停現象
- Testng results報告出現中文亂碼和更新maven出現報錯現象實戰解決Maven
- iOS UITableView資料為空時提示頁面iOSUIView
- 【行業觀察】國產資料庫亂象行業資料庫
- Oracle web介面亂碼分析OracleWeb
- UITableView的原理——探究及重新實現程式碼UIView
- Swift 踩坑筆記 —— UITableView Cell初始化和重新整理的問題探討Swift筆記UIView
- 光與影,何去何從?從《如龍7》談日本極道文化和時代亂象
- 短路:五維現象
- WriteFile 奇怪的現象
- iOS使用UITableView實現的富文字編輯器iOSUIView
- 介面呼叫超時的實現原理
- 面對創投圈亂象,創業者該如何抉擇?創投創業
- win10系統下滑鼠亂跑的解決方法Win10
- 傳送請求時,url 出現亂碼錯誤
- 部落格抄襲現象
- JVM異常現象解析JVM
- Flutter:介面重新整理和生命週期Flutter
- widget state重新整理介面原理揭祕
- 起亞奕跑什麼時候上市的 起亞奕跑上市時間
- iOS UITableView 修改屬性iOSUIView
- 優雅的使用UITableViewUIView
- 徵信App亂象難禁 存洩露個人隱私風險APP
- “野蠻”探店亂象:假資料、假分享、無約束力
- 程式設計師面試時注意了,發現有這8個現象立刻走人!程式設計師面試
- 模擬SQLserver死鎖現象SQLServer
- 新冠:感染、現象與所想
- Vue+WebSocket 實現頁面實時重新整理長連線VueWeb