Есть ли способ получить высоту строки для каждой строки в UITableView
в swift? Пожалуйста помоги. Спасибо заранее.
Получите RowHeight каждой строки в UITableView Swift
Ответ 1
Swift 4:
var height: CGFloat = 0
for cell in tableView.visibleCells {
height += cell.bounds.height
}
Ответ 2
Я думаю, что это то, что вы ищете. Это предполагает, что "Ячейка" является идентификатором данной строки, а indexPath является индексом соответствующей строки.
let row = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)as! UITableViewCell
let height = row.bounds.height
Ответ 3
Ячейки существуют только тогда, когда они видны, и у вас есть доступ к ним через метод табличного вида visibleCells()
.
for obj in tableView.visibleCells() {
if let cell = obj as? UITableViewCell {
let height = CGRectGetHeight( cell.bounds )
}
}
Ответ 4
Вам нужна ячейка для определенного IndexPath
для вычисления ее границ.
Вы можете сделать это таким образом в любой из функций делегата UITableView
:
let row = tableView.cellForRow(at: indexPath)
let cellHeight = (row?.bounds.height)!
let cellWidth = (row?.bounds.width)!
Ответ 5
Функциональный способ:
let sum = tableView.visibleCells.map( { $0.bounds.height } ).reduce(0,+)
print("Height:\(sum)")
Ответ 6
Если ваши строки имеют равномерную высоту, свойство rowHeight должно получить то, что вы хотите.
В противном случае UITableViewDataSource раскрывает numberOfRowsInSection и cellForRowAtIndexPath, а UITableViewCell имеет свойство rowHeight.
Если вы просто пытаетесь получить высоту представления, добавляя высоту строк, вам лучше будет служить свойство contentSize в UITableView.