问题描述:当UITableView上面放了一个button,当点击这个button触发事件,需要确定点击的是哪个cell,以此确定该cell的indexPath
解决:直接上代码
UITableViewCell *cell = [btn findSuperViewWithSuperViewClass:NSClassFromString(@"UITableViewCell")];
NSIndexPath *indexPath = [_tableView indexPathForCell:cell];
-(id)findSuperViewWithSuperViewClass:(Class)cla{//UIView的类扩展
if (self == nil) {
return nil;
} else if (self.superview == nil) {
return nil;
} else if ([self.superview isKindOfClass:cla]) {
return self.superview;
} else {
return [self.superview findSuperViewWithSuperViewClass:cla];
}
}
最近发现另外一种方法,同样直接上代码:
CGPoint point = btn.center;
point = [table convertPoint:point fromView:btn.superview];
NSIndexPath* indexpath = [table indexPathForRowAtPoint:point];
本文介绍了两种确定UITableView中被点击Cell位置的方法。一种是通过自定义查找Superview来获取对应Cell,进而得到indexPath;另一种则是利用CGPoint和 UITableView indexPathForRowAtPoint 方法直接定位点击位置。
5342

被折叠的 条评论
为什么被折叠?



