Как я могу вызвать событие щелчка ячейки табличного представления из фрейма табличного представления? - PullRequest
0 голосов
/ 21 марта 2019

Есть ли способ, когда я касаюсь точки, выходящей за рамки таблицы, вызывать функцию делегата таблицы -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath?

Я попытался переопределить суперпредставление -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event для tableview и изменить точку и позволить событию продолжить передачу в subview для tableview и tableview. Просто прокрутка события работает, но щелкает событие.

Вот демо проект

1 Ответ

0 голосов
/ 21 марта 2019

Проблема в том, что UITableView не поддерживает все клетки живыми.Клетки многоразовые.Всего несколько ячеек до и после видимой области, размещенной на виде.Попробуйте вызвать метод делегата напрямую.

tableView.delegate?.tableView?(tableView, didSelectRowAt: indexPath)

Если вы хотите вызывать этот метод только для ячеек, доступных в настоящее время в табличном представлении.

     if let _ =  tableView.cellForRow(at: indexPath) {
        tableView.delegate?.tableView?(tableView, didSelectRowAt: indexPath)
    }

Вы можете легко преобразовать положение экранав индекс ячейки.

...