Contrôle de réorganisation personnalisé UITableViewCell
Est-il possible de modifier l'image de la réorganiser de contrôle qui s'affiche lorsque la UITableView est en mode édition? J'ai une UIImage que j'aimerais afficher au lieu de l'habituel barres grises.
Dois-je sous-classe UITableViewCell pour accomplir cette?
source d'informationauteur Raphael Schweikert
Vous devez vous connecter pour publier un commentaire.
J'ai mis un peu de travail dans ce récemment, mais a tourné court. J'ai essayé de configurer mon propre editingAccesoryView mais ne pouvait pas obtenir le réorganiser le contrôle de changement. Impair.
Ma conjecture est qu'il a quelque chose à voir avec le commentaire suivant dans le UITableviewCell docs re: showsReorderControl:
En d'autres termes, la editingAccessoryView est remplacé par le contrôle de réorganisation de la vue, ce qui explique peut-être pourquoi nous ne pouvons pas remplacer le contrôle de réorganisation. En espérant que quelqu'un peut trouver une solution de contournement.
Je suppose que vous avez un long chemin passé de cela maintenant, mais cela a été une nouvelle question.
Voir ma réponse ici:
Changer l'icône par défaut pour déplacer des cellules dans UITableView
J'ai récemment couru à travers la nécessité de changer l'image de la réorganiser le contrôle, parce que je sous-classé
UITableViewCell
de fournir mon propre cellule de tableau. Dans le cadre de cet effort, j'ai changé le fond de la cellule à autre chose que la couleur par défaut.Tout fonctionne correctement, mais lorsque j'ai mis le
UITableView
en mode d'édition, le réorganiser de contrôle apparaît, avec un fond blanc au lieu de la couleur d'arrière-plan, j'ai été de les utiliser pour la cellule. Cela n'a pas l'air bien, et j'ai voulu l'arrière-plan de match.Au cours de diverses versions d'iOS, la hiérarchie de vues dans un
UITableViewCell
a changé. J'ai pris une approche qui va parcourir l'ensemble des points de vue jusqu'à ce qu'il trouve leUITableViewCellReorderControl
privé de classe. Je crois que cela fonctionne pour iOS 5 et toutes les versions iOS au moment de cette réponse. Veuillez noter que, bien que laUITableViewCellReorderControl
classe elle-même est privé, je ne suis pas à l'aide de toute privée de l'API pour le trouver.Tout d'abord, voici le code à scanner pour les réorganiser de contrôle; je suis en supposant que le texte "Réorganiser" sera le nom de la classe - qui Apple pourrait changer à l'avenir:
Dans votre personnalisé UITableViewCell sous-classe, vous remplacer
-(void) setEditing:animated:
et de trouver les réorganiser de contrôle ici. Si vous essayez de trouver ce contrôle lorsque la table n'est pas en mode d'édition, le réorganiser le contrôle ne sera pas dans le point de vue de la hiérarchie de la cellule:Votre kilométrage peut varier; j'espère que cela fonctionne pour vous.
Vous définissez la cellule
editingAccessoryView
propriété à un affichage de l'image contenant l'image que vous voulez.En aparté, je vous mets en garde d'être prudent lorsque vous faites cela. Lorsque vous remplacez un graphique personnalisé pour un système standard, telles que le réorganiser graphique, vous courez un risque sérieux de confusion de l'utilisateur. L'INTERFACE utilisateur standard de la grammaire a dit d'attendre le standard graphique lors de la réorganisation et ils peuvent ne pas comprendre la signification de votre graphique personnalisé.
Peut-être que nous sommes tous avoir à y penser. 🙂
Il suffit de mettre un custom
UIImageView
sur le dessus de la valeur par défaut de déplacer accessoire de sorte qu'il couvre. Fait.