我有UITableView包含許多單元格。用戶可以擴展電池看到通過推該小區更多的內容在此單元格(僅1個單元可以在時間展開)展開按鈕:
iOS - indexPathForRowAtPoint不返回正確的索引路徑與不同的單元格高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(selectedRowIndex == indexPath.row) return 205;
else return 60;
}
在故事板,我拖累UILongPressGesture到單元格按鈕,並把它命名爲長按(細胞是自定義,它有在它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時,有很不同的單元格高度?
預先感謝
請添加一些代碼對你是如何加入'UILongPressGestureRecognizer'和你是如何處理的細胞的擴增,否則你不會得到很好的答案。 – tipycalFlow
謝謝。我已更新我的問題 – Dranix