获取UITableView Swift中每行的RowHeight

时间:2015-07-01 01:13:03

标签: iphone swift uitableview

有没有办法在swift中获取UITableView中每行的行高?请帮忙。提前谢谢。

6 个答案:

答案 0 :(得分:8)

Swift 4:

var height: CGFloat = 0
for cell in tableView.visibleCells {
    height += cell.bounds.height
}

答案 1 :(得分:7)

我认为这就是你要找的东西。这假设" Cell" 是给定行的标识符, indexPath 是相关行的索引。

properties: {
  a: {
    value: ''
  },
  b: {
    value: ''
  }
},

答案 2 :(得分:3)

单元格仅在可见时才存在,您可以通过表格视图的visibleCells()方法访问它们。

for obj in tableView.visibleCells() {
    if let cell = obj as? UITableViewCell {
        let height = CGRectGetHeight( cell.bounds )
    }
}

答案 3 :(得分:0)

您需要某个IndexPath的单元格来计算其边界。

您可以在UITableView

的任何委托函数中以这种方式执行此操作
let row = tableView.cellForRow(at: indexPath)
let cellHeight = (row?.bounds.height)!
let cellWidth = (row?.bounds.width)!

答案 4 :(得分:0)

功能方式:

 let sum = tableView.visibleCells.map( { $0.bounds.height } ).reduce(0,+)
 print("Height:\(sum)")

答案 5 :(得分:-1)

如果您的行具有统一的高度,则rowHeight属性可以为您提供所需的内容。

否则,UITableViewDataSource公开numberOfRowsInSection和cellForRowAtIndexPath,而UITableViewCell公开rowHeight属性。

如果您只是想通过将行的高度加在一起来获得视图的高度,那么UITableView上的contentSize属性可能会更好。