Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 11 UITableView delete rows animation bug

Tags:

video of the tableview animation bug

I have a table view which expands/collapse its cells.

As of iOS 11, the tableView starts to behave strangely on insertion and deletion of rows. The contentSize has changed before the animation block happens and consequently, in the video, you can see a buggy scroll back happening on collapsing cells. The animation just looks wrong.

This code worked perfectly on iOS 10. Do anyone know what has changed on Apple's side? Is this a known issue?

public func insertingRowsForAccordion(_ indexArray: [IndexPath], selectedRowIndex: Int) {     beginUpdates()     insertRows(at: indexArray, with: UITableViewRowAnimation.fade)     endUpdates()   // Scroll to selection after expanding children     scrollToRow(at: IndexPath(row: selectedRowIndex, section: 0), at: UITableViewScrollPosition.top, animated: true) }  public func removeRowsForAccordion(_ indexArray: [IndexPath]) {     beginUpdates()     deleteRows(at: indexArray, with: UITableViewRowAnimation.fade)     endUpdates() } 
like image 701
l.vasilev Avatar asked Sep 19 '17 14:09

l.vasilev


1 Answers

I have been having countless problems with iOS 11 UITableView. Going to every UITableView in my entire app and doing the following fixed all of my problems.

Set estimatedRowHeight, estimatedSectionHeaderHeight, and estimatedSectionFooterHeight to 0.

Source: iOS 11 Floating TableView Header

like image 87
jvdev7 Avatar answered Sep 28 '22 07:09

jvdev7