Frage

Ich habe durch diese Frage gegangen , das zeigt den folgenden Code:

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

Was passiert, wenn ich ein eigenes Bild will anstelle des Standard-roten Knopfes?

War es hilfreich?

Lösung

luvieere ist richtig - wenn Sie möchten, dass gleiche „löschen“ Metapher, können Sie es auf den roten Knopf halten wollen, dass Apple zur Verfügung stellt. Warum es ändern? Sein global erkennbar als die Standard zum Löschen-Tasten.

Obwohl, wenn Sie so etwas wie Tweetie wollen, wo Sie vollständig ändert das Verhalten von klauen, Sie so etwas wie ABTableViewCell verwenden könnten, wo man einfach in Ihrer eigenen Sicht ziehen. Erstellen Sie eine benutzerdefinierte Tabellenansicht außer Kraft setzen -touchesBegan: withevent :, und prüfen, ob berührt. Berechnen Sie das Delta der zwei Berührungen (in touchesMoved: withevent :) und Ihre eigene Sicht bewegen.

Andere Tipps

Implementieren Sie diese Methode in benutzerdefinierten Zelle

- (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:@"delete.png"]];
                [[subview.subviews objectAtIndex:0] addSubview:deleteBtn];
                [deleteBtn release];
            }
        }
    }
}

Dies ist eine späte Antwort, aber ich hoffe, dass jemand dies hilfreich sein kann. So ist die akzeptierte Antwort scheint irgendwie kompliziert für mich, und die Antwort von @ user1684899 funktioniert nur, wenn Sie nur das Aussehen der Schaltfläche Löschen ändern möchten. Ich möchte ganz das Aussehen der Schaltfläche Löschen ändern (dh seinen Rahmen, Position usw.), so meine Lösung ist meine eigene Schaltfläche Löschen, um meine benutzerdefinierte Zelle hinzufügen und halten Sie sie zunächst verborgen, und es nur zeigen, wenn die Zelle im Bearbeitungsmodus. Was ist wichtiger, ich will iOS ursprüngliche Schaltfläche Löschen und unterstützt die Abwärtskompatibilität, und hier ist mein Trick verbergen:

- (void)willTransitionToState:(UITableViewCellStateMask)state
{
    [super willTransitionToState:state];
    if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask)
    {
        if (!IS_IOS_7){
            for (UIView *subview in self.subviews)
            {
                if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"])
                {
                    // hide original button
                    [[subview.subviews objectAtIndex:0] setHidden:YES];
                    // show my custom button
                    [self.deleteButton setHidden:NO];
                }
            }

        } else {
            for (UIView *subview in self.subviews) {
                for (UIView *subview2 in subview.subviews) {
                    if ([NSStringFromClass([subview2 class]) rangeOfString:@"Delete"].location != NSNotFound) {
                        // hide original button
                        [subview2 setHidden:YES];
                        // show my custom button
                        [self.deleteButton setHidden:NO];
                    }
                }
            }
        }
    } else {
        // hide my custom button otherwise
        [self.deleteButton setHidden:YES];
    }
}

Und vergessen Sie nicht, hinzuzufügen:

[cell.deleteButton addTarget:self action:@selector(deleteEntryAtIndexPath:) forControlEvents:UIControlEventTouchUpInside];

in cellForRowAtIndexPath, so dass Sie irgend etwas hinzufügen können, die Sie, wenn Sie Ihre Löschtaste geklickt wird. Hier ist mein Ergebnis:

eingeben Bild Beschreibung hier

Der systemweiten Standard für die vorgesehene Liste-dive-in Aktion, wie Sie auf luvieere Antwort im Kommentar sagten, wäre die Detail-Offenlegung zu verwenden (blau eingekreist Pfeil) Zelle Zubehör, nicht die Wischgeste.

Das heißt, wenn Sie immer noch die Swipe-Aktion für diese verwenden möchten, gibt es keine Möglichkeit Ihren eigenen Knopf zu schaffen, ohne manuell abfangen und vollständig die Streichgeste Neuimplementierung, wie das, was Tweetie der Fall ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top