iOS - indexPathForRowAtPoint не возвращает правильный indexPath с другой высотой ячейки

У меня есть UITableView, который содержит много ячеек. Пользователь может расширить ячейку, чтобы увидеть больше содержимого в этой ячейке, нажав кнопку расширения в этой ячейке (только одна ячейка может расширяться за раз):

<code>- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(selectedRowIndex == indexPath.row) return 205;
    else return 60;
}
</code>

В раскадровке я перетаскиваю UILongPressGesture в кнопку ячейки и называю ее longPress (ячейка настраиваемая, в ней 2 кнопки, 1 необходимо распознать LongPressGesture, а другую - увеличить высоту ячейки):

<code>@property (retain, nonatomic) IBOutlet UILongPressGestureRecognizer *longPress;
</code>

И во viewDidLoad:

<code>- (void)viewDidLoad
{      
    [longPress addTarget:self action:@selector(handleLongPress:)];
}
</code>

Это работает отлично, однако когда я использую следующий код для распознавания indexPath ячейки, это неправильно, когда расширяется одна ячейка:

<code>- (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
}
</code>

Может ли кто-нибудь показать мне, как получить правильный indexPath, когда есть другая высота ячейки?
Заранее спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос