Мне нужна конкретная высота для каждого table view
cell
У меня есть. Высота зависит от содержимого (= высота UITextField
внутри cell
).tableView.dequeueReusableCell() внутри таблицыRow (_: heightForRowAt :) метод
Чтобы вычислить его высоту, я хочу создать «prototypeCell» и добавить текст к нему, чтобы получить необходимую высоту. Это единственное, для чего мне нужна эта созданная ячейка. Я попытался это:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let entry = fetchedResultsController.object(at: indexPath)
guard !entry.isFault else { // some entries are faults, somehow
return 0
}
let prototypeCell = tableView.dequeueReusableCell(withIdentifier: "bitCell") as! BitCell
prototypeCell.configure(entry: entry) // add text and stuff
// .cellContentHeight calculates the height I need for the cell
return prototypeCell.cellContentHeight + baseRowHeight
}
У меня есть два вопроса относительно этого:
я пропускаю все
entry
объектов, которые являются разломами (есть довольно много из них, когда я открываю приложение с табличномом). Имеет ли это какое-либо негативное воздействие?Могу ли я использовать
tableView.dequeueReusableCell()
в рамках этого метода? Насколько я понимаю, он деактивирует существующую ячейку и создает новую. Но потом я как бы сбрасываю эту камеру. Это плохо?
Если вам не нужен код, скажите мне. Я не уверен, что нужно, чтобы ответить на это.
Заранее благодарен!
не называйте 'tableView.dequeueReusableCell' вне' cellForRowAt'. – rmaddy
Есть ли другой способ получить "cell" с идентификатором "bitCell"? Я попытался использовать init класса 'BitCell()', но он не работает – Quantm
вместо этого: https://www.raywenderlich.com/129059/self-sizing-table-view-cells – Jake