我有包含许多单元格的 UITableView。用户可以通过按此单元格中的展开按钮来展开单元格以查看此单元格中的更多内容(一次只能展开 1 个单元格):
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(selectedRowIndex == indexPath.row) return 205;
else return 60;
}
在情节提要中,我将UILongPressGesture拖入单元格按钮并命名为longPress(单元格是自定义的,里面有2个按钮,1个需要识别LongPressGesture,另一个扩展单元格高度):
@property (retain, nonatomic) IBOutlet UILongPressGestureRecognizer *longPress;
在 viewDidLoad 中:
- (void)viewDidLoad
{
[longPress addTarget:self action:@selector(handleLongPress:)];
}
它工作得很好,但是当我使用下面的代码来识别单元格 indexPath 时,当一个单元格展开时是错误的:
- (void)handleLongPress:(UILongPressGestureRecognizer*)sender {
// Get index path
slidePickerPoint = [sender locationInView:self.tableView];
NSIndexPath *indexPath= [self.tableView indexPathForRowAtPoint:slidePickerPoint];
// It's wrong when 1 cell is expand and the cell's button I hold is below the expand button
}
当单元格高度不同时,谁能告诉我如何获得正确的 indexPath ?
预先感谢