我是应用开发的新手。在我的应用程序中,当我单击我的表格视图单元格时,将选中该单元格并触发didSelectRowAtIndexPath
方法,无论我是否单击图像或单元格。我希望在单击图像时选择图像,而不是单元格。提前谢谢。
答案 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
方法中)。然后您可以使用按钮目标方法