addSubview选择特定的uitableviewcell

时间:2012-01-27 21:10:58

标签: uitableview addsubview didselectrowatindexpath

我有一个tableview,我想将imageview添加到选中行的单元格的contentView中。

这是我当前的代码,当我点击任何单元格时,它只会将imageView添加到最后一行而不是我点击的行。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    playIcon = [[UIImageView alloc]initWithFrame:CGRectMake(20, 22, 9, 12)];
    UIImage *image = [UIImage imageNamed: @"cell_play.png"];
    [playIcon setImage:image];
    [cell.contentView addSubview:playIcon];
}

3 个答案:

答案 0 :(得分:1)

你可以这样做

[[tableView cellForRowAtIndexPath:indexPath] addSubview:playIcon];

答案 1 :(得分:0)

首先,您尚未确定特定行的单元格。由于您的编译器没有抱怨,我认为该单元格是一个ivar。它指向它指向的最后一个单元格,很可能是表格中的最后一个单元格。

您必须小心,不要在UITableview方法之外设置单元格的内容,包括UITableView方法cellForRowAtIndexPath:`。我在最近的回答at this link中描述了这一点。

因此,如果您查看该答案,您将会看到tableview方法确保即使在tableview滚动且单元格出现和消失时单元格也能正确呈现。我建议您使用某种标记或属性设置数据源,以便查看此图像是否存在。这样,即使您滚动单元格,它也会出现,因此它会消失并重新出现。

答案 2 :(得分:0)

使用Swift 2.0中的UIcollectionView和UItableviewcell为我工作:

CV_Posts.cellForItemAtIndexPath(index)?.addSubview(imag_curtir)