Lorsqu'une cellule dans un UITableView conduit à une sous-vue, il peut être utile d'avoir un contexte visuel ajouté. Un indicateur de divulgation dans un UITableViewCell est un petit chevron affiché sur le bord droit pour indiquer visuellement qu'il conduit quelque part. Par exemple, jetez un coup d'oeil au dossier 8220History8221 dans le Mobile Safari Bookmarks: Nifty, droit Here8217s comment le faire: 8211 (UITableViewCell) tableView: (UITableViewCell) tableView cellForRowAtIndexPath: (NSIndexPath) indexPath statique NSString CellIdentifier quotCellquot UITableViewCell cell tableView dequeueReusableCellWithIdentifier: CellIdentifier if (cellule nil) cellule UITableViewCell alloc initWithStyle: UITableViewCellStyleDefault reuseIdentifier: CellIdentifier autorelease Gardez à l'esprit qu'un indicateur de divulgation est simplement pour le contexte visuel, il doesn8217t fait quoi que ce soit. Vous devez toujours mettre en oeuvre la sous-vue que vous voulez afficher. J'ai besoin de changer la couleur de l'accessoire de disclosureIndicatorView dans un UITableViewCell. Je pense qu'il ya deux façons d'obtenir ce fait, mais je ne suis pas capable de déterminer lesquels sont les meilleurs. Voilà ce que je pense que je peux faire. Il existe une propriété de UITableViewCell - accessoryView. Donc, je peux utiliser setAccessoryView: (UIView) voir et passer la vue comme UIImageView tenant l'image que je veux. J'ai écrit une classe utilitaire qui crée la vue de contenu (des choses comme la couleur d'arrière-plan, ajouter d'autres choses, etc) pour ma cellule et j'ajoute cette vue de contenu à la cellule dans UITableViewDelegate. L'autre option consiste à dessiner une UIImage surpassant la méthode drawRect de la classe utilitaire CustomContentView. Exécution de l'option 1 - Je peux faire les choses à la pomme façon. Il suffit de leur donner la vue et ils font le reste. Mais je suppose que l'ajout d'un nouvel objet UIView à chaque ligne pourrait s'avérer être une allocation d'objets lourds et diminuer le taux d'images. Par rapport à juste un objet UIImage dans mon contentView. Je crois que UIImage est plus léger que UIView. S'il vous plaît jeter des gens légers et m'aider à décider. Si vous êtes intéressé à dessiner l'indicateur, au lieu d'utiliser un fichier image, heres code, j'ai travaillé à le faire: Si vous faites une sous-classe personnalisée UIView, faites ce qui précède dans la méthode drawRect: et Utilisez-la comme votre vue d'accessoire, vous serez en mesure de faire la couleur tout ce que vous voulez. Une vue d'accessoire (personnalisée ou UIImageView ne sera pas un problème majeur de performance tant que vous recyclerez correctement des instances UITableViewCell.) Vous pouvez me dire comment CONTROLISHIGHLIGHTED serait mis, je veux dire, comment la cellule sait-il mis en évidence Ndash cannyboy May 20 10 at 17:33 Si you39re dessiner inon une cellule vue de table, I39m assez sûr UITableViewCell a une propriété en surbrillance. Ndash benzado May 22 10 at 20:01 I39ve essayé d'utiliser ce code, mais pour une raison que je perds Point net où les deux lignes se croisent et obtiennent un angle sourd, toutes les idées ndash Anthony Main Oct 20 10 à 16:24 benzados solution fonctionne très bien, mais il a montré un fond noir. La classe UIView que vous avez configuré (celui whos drawRect fonction Vous avez placé dans son code) doit avoir l'initWithFrame d'implémentation suivante pour que le dessin de divulgation ait un fond transparent: Naturellement, vous pouvez placer ceci à n'importe quelle couleur que vous voulez Réponse de galambalazs fonctionne, Il convient de noter qu'il est un peu un hack car il accède indirectement et met à jour Apples mise en œuvre privée de l'indicateur de divulgation. Au mieux, il pourrait cesser de fonctionner dans les futures versions iOS, et au pire conduire à rejet de l'App Store. Le paramètre accessoryView est toujours la méthode approuvée jusqu'à ce que Apple affiche une propriété permettant de définir directement la couleur. Note: cell. disclosureIndicatorColor doit être configuré après cell. accessoryType. DisclosureIndicator est configuré de telle sorte que le bouton disclosureIndicator soit disponible dans les sous-fenêtres des cellules: Répondue Apr 6 16 À 14:52 L'accès à la hiérarchie de vue n'a jamais été refusé par Apple. Il s'agit généralement d'API privées (méthodes, propriétés ou classes qui ne sont pas dans les documentations) qui vous empêchent. Ndash galambalazs Apr 13 16 at 16:55 Ceci n'est pas seulement accéder à la hiérarchie de la vue, il récupère une propriété UIButton privée indirectement via la hiérarchie et la modifier. Ndash bonebox Apr 14 16 à 17:43
No comments:
Post a Comment