2012-05-17 10 views
5

Mam widok, który zawiera UITableView. Jestem w stanie pokazać przycisk usuwania w komórce, gdy użytkownik przesuwa.Jak wykryć, czy przycisk usuwania UItableviewcell został ukryty?

Jeśli użytkownik dotknie przycisku kasowania, zostanie uruchomiona metoda (działa to poprawnie). Ale jeśli użytkownik postanowi nie usuwać komórki i dotknie dowolnego miejsca w widoku, aby ukryć przycisk usuwania.

Jak mogę to wykryć?

Odpowiedz

3

Gdy użytkownik kliknie poza usuwania znaku w komórce, program powinien otrzymać wezwanie do tableView:didEndEditingRowAtIndexPath: na widoku tabeli delegata.

+0

Works. Dzięki :) – Kassem

+0

To nie działa z trybu edycji. –

3

[UITableViewCell showingDeleteConfirmation]

lub

[UITableViewCell willTransitionToState:] z UITableViewCellStateShowingDeleteConfirmationMask jako parametr

1

W swojej podklasie UITableViewCell zaimplementuj metodę willTransitionToState :. Ta metoda jest wywoływana przez UITableView, gdy komórka jest przenoszona do/ze stanu edycji.

W swojej implementacji klasy musisz warunkowo sprawdzić wartość parametru maski przekazanego do metody, aby określić, w jakim stanie następuje przejście komórki do/z. Możliwe wartości maski są ...

enum { 
    UITableViewCellStateDefaultMask      = 0, 
    UITableViewCellStateShowingEditControlMask   = 1 << 0, 
    UITableViewCellStateShowingDeleteConfirmationMask = 1 << 1 
}; 

W twoim przypadku będzie chciał oglądać do przejścia do UITableViewCellStateDefaultMask więc realizacja będzie następujący ...

- (void)willTransitionToState:(UITableViewCellStateMask)state { 
    if (state == UITableViewCellStateDefaultMask) { 
     // User has switched back to default state... 
     // ... 
    } 
} 
Powiązane problemy