indexPathForRowAtPoint возвращает nil только для первой ячейки в uitableview
у меня естьUIButton
внутри обычаяUITableViewCell
это удаляет ячейку при нажатии кнопки. Чтобы получить indexPath ячейки, в которой находится кнопка, я звонюindexPathForRowAtPoint
: в методе, вызываемом при нажатии кнопки, следующим образом:
-(void)buttonPressed:(UIButton *)sender{
CGPoint btnPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:btnPosition];
if (indexPath != nil)
{
//remove the cell from the tableview.
}
}
Это прекрасно работает, если я нажимаю кнопку в любой ячейке, кроме первой, а также если в таблице есть ТОЛЬКО одна ячейка. Однако, если есть несколько ячеек, и я нажимаю кнопку в первой ячейке, нажатие кнопки срабатывает, и btnPosition найдено, но[self.tableView indexPathForRowAtPoint:btnPosition];
возвращаетсяnil
.
Например, если есть три ячейки, каждая с кнопкой:
Я нажимаю кнопку первой ячейки:Вызывается buttonPressed, но indexPath равен nil, поэтому ничего не происходит.Я нажимаю третью кнопку ячейки:Вызывается buttonPressed, и ячейка удаляется, как и ожидалось.Я снова нажимаю на первую ячейку:Как и прежде, вызывается buttonPressed, но indexPath равен nil.Я нажимаю кнопку второй ячейки:Вызывается buttonPressed, и ячейка удаляется, как и ожидалось.Я нажимаю кнопку первой ячейки:На этот раз вызывается buttonPressed, indexPath не равен nil и ячейка удаляется, как и ожидалось.Я проверил, что tableView не ноль, как это было предложено в соответствующей, но другой публикации. Я также подтвердил, что точкаbtnPosition
установлен на то же значение(x=260, y=44.009995)
оба, когда[self.tableView indexPathForRowAtPoint:btnPosition] == nil
И когда[self.tableView indexPathForRowAtPoint:btnPosition] != nil
.
Итак, кроме вопроса, есть ли у кого-нибудь идеи о том, что здесь может происходить, мой вопрос:
При каких обстоятельствах можно передать тот же CGPoint[self.tableView indexPathForRowAtPoint:btnPosition]
вернуть другое (или ноль)indexPath
?
Я был бы признателен за помощь в любых идеях, где я мог бы найти, чтобы отследить это, или узнать, сталкивался ли кто-либо с подобной проблемой.
Некоторые дополнительные заметки, которые могут быть полезны (прошу прощения, если я задам вопрос с ошибками. Я с удовольствием приму ваше мнение об этом :)
Этот tableView является частьюUITableViewController
который встроен вUINavigationController
TableView имеет 3 раздела, 2 из которых скрыты от просмотра (0 строк, без нижнего колонтитула, без заголовка), в то время как я представляю раздел со строками ячейки кнопки, как описано.
Я корректирую расположение кнопок во время презентации, программно изменяя их горизонтальные ограничения.
Высоты моегоcustomUITableViewCell
, tableViewRows
а такжеUIButton
каждый равен 60.0f