gpt4 book ai didi

ios - 在 UITableViewCell 中检测 UIImageView 上的点击

转载 作者:技术小花猫 更新时间:2023-10-29 11:00:52 25 4
gpt4 key购买 nike

我有一个自定义的复杂 UITableViewCell,其中有很多 View 。我在其中有一个 UIImageView,它在特定条件下可见。当它可见时,

  1. 当用户点击该 UIImageView 时,我必须执行一些操作。

  2. 我知道我必须为此任务触发一个选择器。但我也想将一个值传递给该方法(请参阅下面的 -(void)onTapContactAdd :(id) sender : (NSString*) uid),该方法将在我正在谈论的 UITableViewCell 中作为我的 UIImageView 上的 Tap 操作调用.这是因为,使用传递的值,被调用的方法将完成它的工作。

这是我到目前为止尝试过的方法。

cell.AddContactImage.hidden = NO ;
cell.imageView.userInteractionEnabled = YES;

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onTapContactAdd::)];
[tap setNumberOfTouchesRequired:1];
[tap setNumberOfTapsRequired:1];
[tap setDelegate:self];
[cell.AddContactImage addGestureRecognizer:tap];



-(void)onTapContactAdd :(id) sender : (NSString*) uid
{
NSLog(@"Tapped");
// Do something with uid from parameter
}

点击时不会调用此方法。我已经在我的头文件中添加了。

提前感谢您的帮助。

最佳答案

也许不是理想的解决方案,但可以为每个 UIImageView 添加标签。然后有一个 NSArray,其 uid 对应于标签值

所以在你的代码中的某处创建数组

NSArray *testArray = [NSArray arrayWithObjects:@"uid1", @"uid2", @"uid3", @"uid4", @"uid5", @"uid6", nil];

然后当您设置表格 View 单元格时,将标签设置为行#

//Set the tag of the imageview to be equal to the row number 
cell.imageView.tag = indexPath.row;

//Sets up taprecognizer for each imageview
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(handleTap:)];
[cell.imageView addGestureRecognizer:tap];

//Enable the image to be clicked
cell.imageView.userInteractionEnabled = YES;

然后在被调用的方法中你可以得到这样的标签

- (void)handleTap:(UITapGestureRecognizer *)recognizer  
{
NSString *uid = testArray[recognizer.view.tag];
}

关于ios - 在 UITableViewCell 中检测 UIImageView 上的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19761981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com