Mam zwykły UITableView z 4 rzędami, każdy o wysokości 50. Kiedy naciskam czwarty wiersz, wstawiam piąty rząd o wysokości 80 przy użyciu UITableViewRowAnimationTop. Jak na razie dobrze.Animacja wygląda niezręcznie podczas usuwania komórki, której wysokość jest większa niż inne komórki.
Chcę usunąć piąty rząd, gdy czwarty wiersz zostanie ponownie naciśnięty. Ale kiedy usuwam wiersz za pomocą UITableViewRowAnimationTop (lub innego stylu animacji), animacja wygląda bardzo niezręcznie - animacja zaczyna się, ale komórka znika nagle, zanim animacja zostanie ukończona. (Jest to widoczne tylko wtedy, gdy używasz komórek, które mają kolor tła.) Dolna część komórki nagle znika, zamiast znikać pod komórką powyżej.)
Kod jest podobny do poniższego:
[self.tableview beginupdates];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];
[self.tableview endupdates];
Wysokości rzędów podano w metodzie tableView:heightForRowAtIndexPath:
.
Ten problem nie występuje, gdy wszystkie wiersze mają taką samą wysokość lub gdy usuwany wiersz jest krótszy niż pozostałe wiersze.
myślę jeden obejście jest zmiana wysokości piątego komórki do 50 przed usunięciem go, ale wolałbym nie robić that.Please pomóc
Jesteśmy w 2017 roku i problem nadal występuje w tableWiews. "Środek" rzeczywiście ożywia treść znacznie bardziej zdrowo niż "Top". – DanBlakemore