UITableView.visibleCells.contains (JDHeaderTableViewCell ()) всегда возвращает false - PullRequest
0 голосов
/ 28 декабря 2018

Когда я печатаю видимые ячейки, отображаются два типа ячеек, см. Ниже po cells ▿ 2 elements - 0 : <David.JDHeaderTableViewCell: 0x7fc6880e7a00; baseClass = UITableViewCell; frame = (0 0; 375 210); autoresize = W; layer = <CALayer: 0x600000600200>> ▿ 1 : <David.JDContainerTableViewCell: 0x7fc68a810000; baseClass = UITableViewCell; frame = (0 250; 375 792); autoresize = W; layer = <CALayer: 0x600000655540>>

Но когда я пытаюсь получить объект ячейки, он возвращает false

(lldb) po cells.contains(JDHeaderTableViewCell())

false

Я пробовал со строками ниже:

let indexPath = IndexPath(row: 0, section: 0)
        let cell = self.jdTableView.cellForRow(at: indexPath) as! JDHeaderTableViewCell

Но мне нужно сначала проверить, а затем нужную ячейку.

1 Ответ

0 голосов
/ 28 декабря 2018

Метод contains используется для проверки того, содержится ли объект в данном массиве или нет, здесь вы создаете новый объект как JDHeaderTableViewCell() и проверяете, содержится ли он в заданных видимых ячейках или нет.Поскольку вы создали новый пустой объект, очевидно, что он вернет false.

Если вы хотите получить напечатанную ячейку JDHeaderTableViewCell из видимых ячеек и использовать ее, выполните следующие действия:

let headersCells = tableView.visibleCells?.filter({ (cell) -> Bool in
                return cell is JDHeaderTableViewCell
            })

значение headerCells будет равно нулю, если visibleCells не будет иметь JDHeaderTableViewCell.Если он содержит массив будет содержать все эти объекты.Теперь вам нужно просто получить любой индекс, который вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...