2011-06-21 11 views
9

Mam problemy z używaniem tego UITableView method:Błąd w widoku UITableView (deleteSections: withRowAnimation:)?

- (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation 

Pierwsza dokumentacja mówi:

animacja: TAK animować usuwanie sekcji, inaczej NO.

Ale animacja parametru jest rzeczywiście typu enum UITableViewRowAnimation, a nie BOOL!?

Jak mogę wyłączyć animację? Próbowałem już NO i UITableViewRowAnimationNone. Nic nie działa. Usunięcie sekcji jest zawsze animowane.

Wiem, że mogę zamiast tego użyć [tableView reloadData]. To rozwiązałoby mój problem. Jestem tylko ciekawy, czy jest to znany problem i czy można wyłączyć animację za pomocą tej metody tableview.

Dzięki!

+0

Znalazłeś rozwiązanie? –

Odpowiedz

4

O TAK/NIE w dokumencie, podczas gdy parametr jest typu UITableViewRowAnimation, domyślam się, że jest to reszta ze starej wersji API, gdzie parametr był wcześniej BOOL. W każdym razie dokumentacja jest rzeczywiście błędna.

Nie wahaj się wysłać opinię do firmy Apple za to (za pomocą „To jest dobre, ale ...” link na dole doc)

2

Cóż, oczywiście dokumentacja jest rzeczywiście błędna. Parametr, który przekazujesz, opisuje sposób animacji usunięcia. Jeśli zdasz UITableViewRowAnimationNone, aktualizacja nastąpi natychmiast bez animacji. Jeśli jednak masz sekcję poniżej tej, którą usuniesz, zostanie ona przesunięta w górę w animowany sposób.

Powinieneś spróbować skorzystać z animacji. W ten sposób użytkownik może zobaczyć, co się dzieje.

1

wierzę trzeba osadzić wezwanie deleteSections wewnątrz beginUpdates bloku :

[tableView beginUpdates]; 
[tableView deleteSections:... withRowAnimation:... ]; 
[tableView endUpdates]; 

Wydaje się, że tak jest w przypadku documentation. Nie testowałem tego jednak z UITableRowViewAnimationNone.

43

To rodzaj hack ale pozbywa animacji insert:

[UIView setAnimationsEnabled:NO]; 
[self.tableView insertRowsAtIndexPaths:insertedIndexPaths withRowAnimation:UITableViewRowAnimationNone]; 
[UIView setAnimationsEnabled:YES]; 
+0

wow !!! to działało dla mnie ... dzięki –

+0

@samvermette dziękuję! Dziękuję Ci! po godzinie frustracji, była to odpowiedź, której potrzebowałem. –

+0

Dzięki stary, bardzo dobra odpowiedź! – Eugene

Powiązane problemy