Podczas korzystania moveRowAtIndexPath:toIndexPath:
przenieść UITableViewCell
, Widzę usterki animacji przy użyciu estimatedRowHeight
i UITableViewAutomaticDimension
gdy komórka animuje z widocznym stanie do niewidocznego stanu.UITableViewCell animacja bug w `moveRowAtIndexPath: toIndexPath:` `estimatedRowHeight` podczas używania i` UITableViewAutomaticDimension`
Problem zniknie, jeśli wyraźnie ustawię wysokość komórek, wprowadzając tableView:heightForRowAtIndexPath:
. Problem pojawia się tylko wtedy, gdy ścieżki indeksu źródłowego i docelowego są odpowiednio widoczne i niewidoczne. Gdy komórka przechodzi do innej widocznej ścieżki indeksu, animacja zachowuje się zgodnie z oczekiwaniami.
Utworzyłem przykładowy projekt w celu zilustrowania wpływu: https://github.com/timarnold/Table-Cell-Sizing-Bug
http://www.openradar.me/19156703
Edit
@rdelmar wskazał, że moje pytanie nie rzeczywiście zadać pytanie.
Czy ktoś wie o sposobie obejścia tego błędu i naprawienia tego zachowania? Czy robię coś złego?
Edit 2014-12-08
Kiedyś jeden z moich Apple dostarczonych biletów wsparcia deweloper uzyskać informację o tym problemie z Apple. Potwierdzili, że to błąd (wizyta pod numerem http://www.openradar.me/19156703) i nie dostarczyli żadnych obejść.
Wiesz, jak to naprawić, więc jakie jest twoje pytanie? Myślę, że jest to przypadek "dostajesz za co płacisz" (płaca jest czasem i złożonością kodu). To i problemy z przewijaniem do konkretnej ścieżki indeksu są konsekwencją sposobu, w jaki są używane szacowane wysokości, więc nie sądzę, że możesz to naprawić (interesujące będzie sprawdzenie, czy Apple może to naprawić bez poświęcania prędkości używając szacowanych wysokości). Prawdopodobnie możesz zminimalizować efekt, zapewniając dokładniejsze oszacowanie wysokości (choć to niewiele pomoże, jeśli masz bardzo różne wysokości). – rdelmar
Cóż, to nie jest tak bardzo pytanie, ponieważ jest to dokumentacja problemu i prośba o potencjalne obejścia (przypuszczam, że moja prośba powinna być bardziej jednoznaczna, będzie edytować pytanie). Sądzę, że to uczciwe zakwalifikować to zachowanie jako błąd, ponieważ projekt do odtworzenia jest dość prosty i wykorzystuje wszystkie podstawowe składniki i możliwości. –
Nie wiem, czy nazwałbym to błędem, czy tylko konsekwencją wymiany pomiędzy szybkością i poprawnością, którą stworzył Apple. Jest to technika, która zadziała w niektórych przypadkach, ale nie we wszystkich. Myślę, że jedyną pracą dookoła jest obliczyć wysokość w sposób "staroświecki" - mam nadzieję, że się mylę, ponieważ nowe komórki samokonujące są świetne, gdy pracują. – rdelmar