Swift 动态调整UITableViewCells的大小
我以前使用过动态调整Swift 动态调整UITableViewCells的大小,swift,uitableview,uilabel,ios-autolayout,Swift,Uitableview,Uilabel,Ios Autolayout,我以前使用过动态调整UITableViewCell。但目前我面临一个问题,即无法使用autolayout 我的单元格有三个组件,即-a-viz一个UIImageView,两个UILabel 该单元的结构如下所示 UIImageView在我的情况下必须具有固定的宽度和高度60X60 UIImageView将垂直居中于UITableViewCell UIImageView在UITableViewCell 现在两个ui标签已垂直放置 这两个标签都可以具有动态高度,我希望它们使用autolayout推动
UITableViewCell
。但目前我面临一个问题,即无法使用autolayout
我的单元格有三个组件,即-a-viz一个UIImageView
,两个UILabel
该单元的结构如下所示
UIImageView
在我的情况下必须具有固定的宽度和高度60X60
UIImageView
将垂直居中于UITableViewCell
UIImageView
在UITableViewCell
现在两个ui标签已垂直放置
这两个标签都可以具有动态高度,我希望它们使用autolayout
推动展开单元格,但我只能实现顶部UILabel
保持恒定高度,而下方UILabel
增加高度
我想让ui标签
垂直扩展,并增加ui表格视图单元格的大小
只需对两个标签使用StackView,并将两个标签numberOfLine
设为0,换行符应为WordWrap。
为堆栈视图提供前导、尾随、顶部和底部约束。对于标签之间的间距,请在xcode详细信息窗格上为stackview指定间距
有关约束的设置,请参见屏幕截图。
在标签上添加一个高度约束,使常量大于等于为固定值(请参见屏幕截图2)。并将行设置为0。在表视图中,将其设置为UITableViewAutomaticDimension。
您可能需要找到字符串的高度,手动调整UILabel
的大小,以及UITableViewCell
的大小。只需尝试将标签约束的高度设置为大于或等于。多行UILabel
和自动布局不能很好地结合在一起。对于这类布局,我通常使用手动布局。正如@SagarShirbhate所说,一个选项是计算标签应有的高度-我将对第一个UILabel执行此操作,对第二个UILabel使用动态高度。如果堆栈视图
可用,这是一个很好的解决方案。但是不要使用堆栈视图。顶部
和堆栈视图。底部
带有“幻数38.5”(这就是为什么它在Xcode中不发出警告)使用标准值,但对于底部边距,将其设置为大于或等于
。请注意,图像的高度和宽度应设置为满足约束条件。我的应用程序支持iOS 8.0或更高版本,因此我无法使用UIStackView。