从超级视图iOS 7问题中获取UITableViewCell

Mat*_*der 3 uitableview uigesturerecognizer ios ios7

我在单元格中有很少的UI对象,它们有手势识别器实例.我需要获取按压对象所在的单元格.我有以下方法来获取它,但它只是在iOS 7之前工作:

UITableViewCell *cell = (UITableViewCell *)[[[sender view] superview]superview];
Run Code Online (Sandbox Code Playgroud)

对于iOS 6它返回 UITableViewCell

对于iOS 7它返回 UITableViewCellScrollView

我认为新的单元格在iOS 7中有一些额外的视图,这就是为什么我抓住UITableViewCellScrollView而不是UITableViewCell像以前那样.

Gre*_*reg 10

从子视图中获取表视图单元格的最佳方法是将子视图的位置转换为表视图中的某个位置,然后向表视图询问该点的单元格的索引路径:

CGPoint subviewPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath* indexPath = [self.tableView indexPathForRowAtPoint:subviewPosition];
Run Code Online (Sandbox Code Playgroud)

然后,您可以获取该索引路径的单元格:

UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:indexPath];
Run Code Online (Sandbox Code Playgroud)