如何只选择UITableViewCell的一部分

时间:2012-02-23 12:02:35

标签: objective-c ios uitableview

我的表格单元格左侧是图像。现在,每次敲击单元格时,图像都会发生变化,但我只希望在单击单元格的左侧区域时更改图像。我怎么能这样做?

现在我有:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
{
    if (cell.imageView.image == [UIImage imageNamed:@"checkboxfull.png"]) {

        cell.imageView.image = [UIImage imageNamed:@"checkboxblank.png"];
    }
    else if(cell.imageView.image == [UIImage imageNamed:@"checkboxblank.png"]) {

      cell.imageView.image = [UIImage imageNamed:@"checkboxfull.png"];
      //[alert show];
    }
}

3 个答案:

答案 0 :(得分:4)

表格单元格只是UIView。创建一个自定义单元格并使用UIImageView子类或响应您的水龙头的按钮。

或者使用表格单元格的- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event并计算位置。

有关表格单元格的信息,请查看here

答案 1 :(得分:2)

我建议为每个'UIImageView'添加'UIGestureRecognizer',请参阅Apple Docs。 要确定选择了哪个图像,请使用标签...

答案 2 :(得分:0)

为了给Erik提供更多帮助,我只会打电话给超级,如果它在我想要的地方。

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event 
{
    UITouch *touch = touches.anyObject;
    CGPoint location = [touch locationInView:self.addRemoveButton];
    if (CGRectContainsPoint(self.addRemoveButton.bounds, location))
    {
        [super touchesEnded:touches withEvent:event];
    }
}