如何在UITableViewCell中自定义配件显示图像?

jpm*_*jpm 50 cocoa-touch uitableview

我想在我的UITableView中使用标准公开配件图像的自定义版本.我怎样才能做到这一点?我希望对这个基本的东西不需要对UITableViewCell进行子类化.

cod*_*gic 121

您需要创建自定义视图并将其分配给对象的accessoryView属性UITableViewCell.就像是:

myCell.accessoryView = [[ UIImageView alloc ] 
                       initWithImage:[UIImage imageNamed:@"Something" ]];
Run Code Online (Sandbox Code Playgroud)

  • 如果我这样做,我注意到不再调用UITableViewDelegate方法 - [tableView:accessoryButtonTappedForRowWithIndexPath:].这是预期的行为吗?有没有办法让这种方法有效? (8认同)

STU*_*MER 9

- (UITableViewCell *)tableView:(UITableView *)tView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

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


    return cell;
}
Run Code Online (Sandbox Code Playgroud)

好吧,我用上面给出的帮助代码做到这一点


nie*_*bot 7

我遇到了与Greg相同的问题 - 附件视图没有跟踪(如果你使用UIImageView)

我这样解决了:

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 ] ;
Run Code Online (Sandbox Code Playgroud)