获取 UITableView Swift 中每一行的 RowHeight
Posted
技术标签:
【中文标题】获取 UITableView Swift 中每一行的 RowHeight【英文标题】:Get RowHeight of each row in UITableView Swift 【发布时间】:2015-07-01 01:13:03 【问题描述】:有没有办法快速获取UITableView
中每一行的行高?请帮忙。提前致谢。
【问题讨论】:
你想什么时候得到rowHeight?你用过自动布局吗? 是的,我需要行高。我正在使用自动布局 为什么要获取rowHeight? 我的行高是动态的。我需要根据条件更改行高。所以我需要行高。 也许您应该使用自调整大小的单元格:appcoda.com/self-sizing-cells 【参考方案1】:斯威夫特 4:
var height: CGFloat = 0
for cell in tableView.visibleCells
height += cell.bounds.height
【讨论】:
【参考方案2】:我认为这就是您要寻找的。这假定 "Cell" 是给定行的标识符,而 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】:功能方式:
let sum = tableView.visibleCells.map( $0.bounds.height ).reduce(0,+)
print("Height:\(sum)")
【讨论】:
【参考方案5】:您需要某个IndexPath
的单元格来计算其边界。
您可以在UITableView
的任何委托函数中这样做:
let row = tableView.cellForRow(at: indexPath)
let cellHeight = (row?.bounds.height)!
let cellWidth = (row?.bounds.width)!
【讨论】:
以上是关于获取 UITableView Swift 中每一行的 RowHeight的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3.0 无法从 UITableView 中删除一行