51 votes

Comment puis-je personnaliser l'accessoire de la divulgation de l'image dans un UITableViewCell?

Je voudrais utiliser une version personnalisée de la norme de divulgation accessoire image dans mon UITableView. Comment puis-je faire cela? Je suis en espérant que les sous-classing UITableViewCell n'est pas nécessaire que quelque chose de cette base.

124voto

codelogic Points 22722

Vous aurez besoin pour créer une vue personnalisée et de l'attribuer à l' accessoryView de la propriété de l' UITableViewCell objet. Quelque chose comme:

myCell.accessoryView = [[ UIImageView alloc ] 
                       initWithImage:[UIImage imageNamed:@"Something" ]];

10voto

STUPID PROGRAMMER Points 322
- (UITableViewCell *)tableView:(UITableView *)tView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    UIImage *indicatorImage = [UIImage imageNamed:@"Arrow.png"];
    cell.accessoryView =[[[UIImageView alloc]  initWithImage:indicatorImage] autorelease];


    return cell;
}

eh bien, je le faire avec l'aide de code donné ci-dessus

7voto

nielsbot Points 9551

J'ai rencontré le même problème que Greg--l'accessoire de vue n'est pas de la piste (si vous utilisez une UIImageView)

Je l'ai résolu comme ceci:

UIImage * image = [ UIImage imageNamed:@"disclosure-button-grey.png" ] ;
UIControl * c = [ [ UIControl alloc ] initWithFrame:(CGRect){ CGPointZero, image.size } ] ;

c.layer.contents = (id)image.CGImage ;
[ c addTarget:self action:@selector( accessoryTapped: ) forControlEvents:UIControlEventTouchUpInside ] ;
cell.accessoryView = c ;
[ c release ] ;

1voto

Airsource Ltd Points 14291

Vous n'avez pas besoin de sous-classer. Il suffit de créer un normal UITableViewCell, créer votre accessoire de vue - tout type de UIView va le faire, qui peut contenir des sous-vues, puis le définir comme le accessoryView de votre cellule.

Par défaut, une cellule ne dispose pas d'une accessoryView - si vous regardez le bien, vous verrez que c'est nul.

1voto

Vishman Points 133
UIImageView *chevronImgVw = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"chevron_accessory_vw_img.png"]];
chevronImgVw.frame = CGRectMake(cell.accessoryView.frame.origin.x, cell.accessoryView.frame.origin.y, 10, 20);
cell.accessoryView = chevronImgVw;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X