網頁

2017年12月5日 星期二

UITableView的beginUpdates及endUpdates在iOS 11後行為有變動,造成原本cell的展開不正常

最近案子有個表單是會隨時依使用者的點選變動cell的高度或加入cell,在iOS11出現前都很正常,但最近裝置更新成iOS11後,最後一列的展開會無法出現,但按第二次就正常,非常奇怪,查了半天,看起來在iOS11之前的UITableView的beginUpdates及endUpdates只會讓每個cell的heightForRowAtIndexPath執行一次,但iOS11開始,會執行三次左右,且cellForRowAtIndexPath取得的cell可能為nil,不是每次都如此,最後改使用reloadData就沒有這個問題,但這應該也只是暫時解法,若cell太多或裡頭資料太多,可能造成些效能上的問題

沒有留言:

張貼留言