UITaUITableView 不進行reloadData改變Cell的高度

一、beginUpdates 和 endUpdates必須成對使用動畫

二、使用beginUpdates和endUpdates能夠在改變一些行(row)的高度時自帶動畫,而且不須要Reload row(不用調用cellForRow,僅僅須要調用heightForRow,這樣效率最高)。code

三、在beginUpdates和endUpdates中執行insert,delete,select,reload row時,動畫效果更加同步和順滑,不然動畫卡頓且table的屬性(如row count)可能會失效。animation

四、在beginUpdates 和 endUpdates中執行 reloadData 方法和直接reloadData同樣,沒有相應的中間動畫。同步

改變Cell高度 直接調用:
self.tableView.beginUpdates()
  .....
self.tableView.endUpdates()
利用UIView的動畫的執行時間來控制beginUpdates和endUpdates的動畫時間。
UIView.animate(withDuration: 0, animations: {
       self.tableView.beginUpdates()
       self.tableView.endUpdates()
 })
相關文章
相關標籤/搜索