問 題
問題如題目所示。
場景:目前tableviewcell是由三個view拼接而成的,加在cell.contentView上。重新整理的時候我隻需要重新整理其中一個cell的一個view裡的内容。
但是執行重新整理cell方法,是三個view是一起重新整理的,導緻資料不變的view會閃一下。
請問各位這種場景如何優化?
解決方案
首先很感謝大家的回答,今天看到還有人回複這個問題,我坐下補充
對這個問題,有一點需要更正:
1、出現重新整理閃動問題的是CollectionViewCell,我當時以為tableView也會有同樣的問題,是以問題裡寫成了tableViewCell。實時證明,我當時的場景tableView不會出現閃動問題。
解決方案:
1、針對原問題CollectionViewCell閃動,是由于CollectionView隐式動畫引起的,可以這樣寫:
//關閉隐式動畫,防止cell閃動
[UIView performWithoutAnimation:^{
[self reloadItemsAtIndexPaths:@[indexP]];
}];
更多關掉隐式動畫方案:http://adad184.com/2015/11/10...
2、針對tableViewCell的重新整理,可以在自定義cell寫一個方法實作,但是滑動到可見範圍之外再回來,狀态會回複(因為走了tableView:tableViewcellForRowAtIndexPath)。如果要保持cell的狀态不改變隻能通過reload方式實作,就是更新資料源。
掃一掃關注IT屋
微信公衆号搜尋 “ IT屋 ” ,選擇關注與百萬開發者在一起