计算xib文件的高度
Posted
技术标签:
【中文标题】计算xib文件的高度【英文标题】:Calculate height of Xib file 【发布时间】:2019-08-23 07:18:00 【问题描述】:我在我的表格视图中实现了 2 Xib
。
其中一个 xib 具有堆栈视图并具有动态数据,因为其大小可以从 300 点到 360 点不等,
目前,我正在实现以下功能。
但这并不能解决问题,因为我必须添加最大高度。
有什么方法可以动态计算我的1 xib
视图的高度并相应地更新第一个单元格
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
if indexPath.row == 0
return 360.0 // max height of first xib
else
return (heightOfSecondXib)
【问题讨论】:
不要不要实现heightForRowAt
。如果您在xib
中正确设置了约束,则自动布局会自动为您处理高度。
我试过了,但它不会自动调整大小。
那么听起来你的约束设置不正确。显示您的 XIB
文件的设计(带有可见约束的屏幕截图)。
【参考方案1】:
UITableView
中的动态高度使用这个
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
return UITableView.automaticDimension
对于任何动态数据/大小问题,使用 UITableViewAutomaticDimension 是一个好方法。但是为此,您必须对 Xib 进行准确的限制,以便它可以按您的意愿显示。
【讨论】:
说 OP 应该对自动单元格高度使用适当的约束是正确的,但你应该NOT以这种方式实现heightForRowAt
。从 ios 10(甚至可能是 9)开始,UITableView.automaticDimension
是默认设置。以这种方式实现它会迫使 UIKIt 在不需要时调用此函数。以上是关于计算xib文件的高度的主要内容,如果未能解决你的问题,请参考以下文章
从 xib 添加自定义视图作为子视图时,UITableViewCell 的高度错误
如何动态计算自定义展开/可折叠 UITableViewCell 的高度