Проверьте, отображается ли конкретный UITableViewCell в UITableView

У меня есть UITableView и несколько UITableViewCells , которые я создал вручную с помощью Интерфейсный разработчик . Я назначил каждой ячейке выход и подключил их к UITableView в методе CellForRowAtIndexPath . В этом методе я использую метод переключателя (case) , чтобы определенные ячейки отображались в UITableView , в зависимости от случая.

Теперь я хочу найти конкретную ячейку и проверить, существует ли она в UITableView . Я использую метод: UITableView.visibleCells , чтобы получить массив ячеек в табличном представлении. Мой вопрос: как я могу проверить, существуют ли определенные ячейки в массиве? Могу ли я как-нибудь использовать назначенную мне розетку? - (Лучшее решение) ИЛИ, могу ли я использовать идентификатор и как?

Спасибо :)

25
задан ozking 8 November 2011 в 15:39
поделиться

3 ответа

if ([tableView.visibleCells containsObject:myCell])
{
    // Do your thing
}

Это предполагает, что у вас есть отдельная переменная экземпляра, содержащая интересующую вас ячейку, я думаю, что вы делаете из вопроса, но это не ясно.

17
ответ дан 28 November 2019 в 17:39
поделиться

Вы можете использовать метод UITableView:

[tableView indexPathForCell:aCell];

Если ячейка не существует в tableView, она вернет ноль. В противном случае вы получите NSIndexPath ячейки.

11
ответ дан 28 November 2019 в 17:39
поделиться

Вы можете сделать это в Swift 3, чтобы проверить, виден ли UITableViewCell:

let indexPathToVerify = IndexPath(row: 0, section: 0)
let cell = tableView.cellForRow(at: indexPathToVerify)

if tableView.visibleCells.contains(cell) {
    // the cell is visible
}
1
ответ дан 28 November 2019 в 17:39
поделиться