2009-07-15 7 views

Répondre

13

Il n'y a pas de noir "standard", mais ce n'est pas beaucoup de travail pour faire ce que vous demandez.

Créez (dans Photoshop ou quelque chose de similaire) votre propre version noire du bouton de divulgation des détails. Vous pouvez saisir l'écran et le colorier si c'est plus facile. Ajoutez ensuite comme une ressource à votre projet et le mettre dans un UIImage comme ceci:

UIImage myImage = [UIImage imageNamed:@"blackbutton.png"]; 

Ensuite, créez un UIImageView qui contient cette image:

UIImageView *imageView = [[UIImageView alloc] initWithImage:myImage]; 

Enfin, vous pouvez attribuer cela à la " vue accessoire "pour la cellule que vous avez déjà mis en place:

[cell setAccessoryView:imageView]; 

Hope that helps! // EDIT - J'ai eu l'impression d'avoir un rapide 5 minutes en photoshop donc créé un noir pour vous. s'amuser!

lien mort ImageShack enlevé

+0

quelle taille devrait-je faire –

+0

il est 28x28 - ont créé pour vous et lié à elle dans mon poste principal. espérons que cela aide – h4xxr

+0

merci beaucoup –

1

La réponse de h4xxr ne fonctionnait pas complètement pour moi dans iOS 5.1.1 (en cliquant sur la vue accessoire ne pas appeler la méthode tableView:accessoryButtonTappedForRowWithIndexPath), donc je changé sa solution avec l'aide de cette answer liée, en utilisant un UIButton avec l'image plutôt que d'un UIView, qui peut appeler un sélecteur personnalisé si vous cliquez dessus:

UIImage *myImage = [UIImage imageNamed:@"blackaccessorybutton.png"]; 
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
button.frame = CGRectMake(0, 0, myImage.size.width, myImage.size.height); 
[button setImage:myImage forState:UIControlStateNormal]; 
[button addTarget: self 
      action: @selector(toggleCustomDetailDisclosureButton:) 
forControlEvents: UIControlEventTouchUpInside]; 
[cell setAccessoryView:button]; 
1

Il y a une solution beaucoup plus facile sur iOS 7. Utilisez la propriété tintColor sur UIView. Les sous-classes ont généralement tendance à le respecter, et l'indicateur de divulgation ne fait pas exception.

UIView *v = [[cell subviews] lastObject]; 
     v = v.subviews.count ? [v.subviews objectAtIndex:0] : nil; // v is the disclosure indicator 
     if ([v respondsToSelector:@selector(setTintColor:)]) 
      v.tintColor = [UIColor greenColor];