2012-12-02 21 views
7

Mam funkcję "Przesuń, aby usunąć" TableViewCell. Chcę dostosować przycisk Delete. enter image description hereDostosuj przycisk usuwania w UITableView

Czy jest to możliwe i jak uzyskać dostęp do przycisku Usunąć?

+1

spróbować tych http://stackoverflow.com/q/8603431/194544 http://stackoverflow.com/q/1615469/194544 – beryllium

+0

@beryllium więc rozwiązaniem byłoby, aby utworzyć komórkę niestandardowy? Ale już zbudowałem komórkę, wolałbym ustawić urządzenie do rozpoznawania gestów, a następnie ustawić tę komórkę jako komórkę niestandardową. – Spire

+0

Chcesz akcji dla przycisku usuwania lub musisz zmienić przycisk usuwania –

Odpowiedz

6

Ta metoda zostanie wywołana, gdy użytkownik wykonuje akcję bezstykowa

Wystarczy umieścić to w swoim CustomCell

- (void)willTransitionToState:(UITableViewCellStateMask)state 
    { 
     [super willTransitionToState:state]; 
     if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask) 
     { 
      for (UIView *subview in self.subviews) 
      { 
       if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) 
       { 
        UIImageView *deleteBtn = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 64, 33)]; 
        [deleteBtn setImage:[UIImage imageNamed:@"arrow_left_s11.png"]]; 
        [[subview.subviews objectAtIndex:0] addSubview:deleteBtn]; 
       } 
      } 
     } 
    } 

Nie należy spróbuj tego, nie powinieneś zmieniać domyślnego ustawienia Apple widoki.

+0

Znalazłem inny sposób usuwania, ale dziękuję za wysiłek. Dostanę na ten temat wykształcenie moralne, ponieważ będę potrzebował go do innych projektów. thx ** Jednej rzeczy, nie korzystam z niestandardowej komórki, dlatego potrzebowałem informacji, jak zmienić wygląd DELETE, aby wyglądał jak przycisk Nudge ** – Spire

+0

jest wyraźnie napisane w pytaniu – Spire

+7

to nie działa w ios 7 – Kiddo

-1

Spróbuj tego:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) 
    { 
    // Your Code 
    } 
} 
+0

OK i jak wywołać przycisk Usuń tutaj w sekcji "// Twój kod"? Jak mogę to zmienić w 'UIButtonTypeCustom'? – Spire

+0

To jest wbudowana funkcjonalność tabeli, więc możesz robić, co chcesz, jak na przykład usuwanie wartości z tablicy dla np.- [idArray removeObjectAtIndex: indexPath.row]; gdzie idArray to NSMutableArray posiadający identyfikator. Na koniec wystarczy przeładować swoją tabelę, wywołując [tableView reloaddata]; gdzie tableView to nazwa twojego stołu. –

+0

Zmieniłem swój komentarz – Spire

12

Jeśli chcesz tylko zmienić tytuł przycisku, musisz tylko dodać metodę titleForDeleteConfirmationButtonForRowAtIndexPath.

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return @"NewButtonName"; 
} 
+0

to dla mnie wspaniała praca:) dziękuję! – slboat

Powiązane problemy