我有下一个自定义单元格:
当我填满我的桌子时,我这样做:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected)];
singleTap.numberOfTapsRequired = 1;
cell.iboPopImage.userInteractionEnabled = YES;
[cell.iboPopImage addGestureRecognizer:singleTap];
我将点击事件添加到此高亮显示的图像中。
这是功能事件:
我想将单元格索引传递给它,因此我可以使用所需的单元格进行操作
-(void)tapDetected:(NSInteger *)index
{
//Some code to do
}
但它不允许我这样写:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:indexPath.row)];
如何解决?
答案 0 :(得分:1)
使用手势识别器时,您无法选择它将调用的操作方法的格式,方法应为:
- (void)tapDetected:(UITapGestureRecognizer *)sender
然后,您可以使用sender
来获取被点击的视图(然后可能会获得其tag
)。
P.S。多数民众赞成@selector(tapDetected:)
答案 1 :(得分:0)
执行以下操作,在您的界面中:
@interface viewcontroller : UITableViewController
{
int indexpathRow;
}
-(void) getIndex:(int)getRow;
然后在您的.m文件中,在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法中,调用[self getIndex:indexPath.row];
。然后获取索引路径:
-(void) getIndex:(int)getRow
{
indexpathRow = getRow;
}
现在,您可以在viewController类的任何位置使用它。