2013-01-04 6 views
0

Ouais ouais, je sais ... Il ne faut pas (vouloir) remplacer les boutons par défaut utilisés dans UITableView parce que les utilisateurs reconnaissent les boutons et savent quoi faire avec eux. Cependant, le signe moins rouge et le bouton vert plus semblent terribles avec mon beau design fait sur mesure et j'aimerais vraiment trouver un moyen d'ajouter les images des concepteurs à ces boutons (qui sont encore très reconnaissables). Donc, la question serait de savoir comment remplacer ces images? Une manière serait de ne pas utiliser le mode d'édition UITableView standard et de tout construire moi-même (comme suggéré sur d'autres questions sur stackoverflow) mais j'espère que je ne devrais pas aller tout de cette façon.Remplacer le bouton ou les images 'supprimer' et 'ajouter' dans UITableView Editmode

Une autre façon est de construire un nouvel état dans willTransitionToState mais je préfère trouver un moyen plus facile.

Si quelqu'un a des suggestions s'il vous plaît faites le moi savoir!

Je ne cherche pas pour le editingAccessoryView que l'on placera l'accessoryView à droite ..

+1

Eh bien, malheureusement theres aucun moyen plus facile que de le faire par vous-même, comme vous l'avez mentionné. Vous ne pouvez pas remplacer les images directement. – Andy

+0

'initWithImage: style: cible: action:' peut être utile .. –

+0

Un barbutonitem? – Tieme

Répondre

1

Je me suis trouvé une réponse à ce problème!

J'ai cherché avec le débogueur et `po [auto recursiveDescription] dans la hiérarchie de la vue jusqu'à ce que je trouve la vue responsable des icônes et remplacé par ma propre image

J'ai fait un repo github comme un exemple mais est le code cache l'ancienne image:

- (void) removeOriginalEditControl{ 
    for (UIView *subview in self.subviews) { 
     if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"]) { 
      for (UIView *subsubview in subview.subviews) { 
       if ([NSStringFromClass([subsubview class]) isEqualToString:@"UIImageView"]) { 
        [subsubview removeFromSuperview]; 
        break; 
       } 
      } 
     } 
    } 
} 

Et plus tard ajouter une nouvelle UIImageView en place pour montrer ma nouvelle icône!

Découvrez l'exemple complet à: https://github.com/tiemevanveen/TableViewCustomEditControls

Questions connexes