如何通过触摸tableviewcell选择图像

时间:2016-10-18 06:28:55

标签: ios uitableview

我是应用开发的新手。在我的应用程序中,当我单击我的表格视图单元格时,将选中该单元格并触发didSelectRowAtIndexPath方法,无论我是否单击图像或单元格。我希望在单击图像时选择图像,而不是单元格。提前谢谢。

2 个答案:

答案 0 :(得分:0)

在图像视图上添加UITapGestureRecognizer,如果您不想选择单元格,则关闭表视图单元格选择。在图像上点击功能做你想要的。

答案 1 :(得分:0)

cellForRowAtIndexPath方法中,添加自定义UIButton并将图像指定为按钮的背景图像。然后将目标添加到按钮并在按钮目标方法

中处理代码
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CellIdentifier"];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellIdentifier"];


        UIButton *imageButton = [[UIButton alloc] initWithFrame:<Give the frame you want>];
        [imageButton setBackgroundImage:<your image> forState:UIControlStateNormal];
        [imageButton addTarget:self action:@selector(imageButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
        [cell addSubview:imageButton];

    }

    return cell;
}

这里最好的方法是创建一个自定义UITableViewCell,其imageButton作为实例变量,而不是在cellForRowAtIndexPath方法中创建它。现在使用imageButtonClicked方法

-(void)imageButtonClicked:(UIButton *)sender {

    UIImage *image = sender.currentBackgroundImage;

    //Do the logic what you want here

}

请给出按钮的框架,使其位于您想要的位置。

我还没试过这段代码。如果sender.currentBackgroundImage未向您提供图像,则创建从UIButton扩展的自定义按钮。自定义按钮应该具有UIImage变量作为实例变量。将变量分配给初始化时所需的图像(在cellForRowAtIndexPath方法中)。然后您可以使用按钮目标方法

访问图像