我试图在UITableViewCell中堆叠两个标签。我在tableView上设置了AutomaticDimension和EstimateRowHeight。
我希望单元格显示堆叠在一起,如果它们都有内容,它们的动态高度。
如果只有一个内容,我希望它位于单元格的中央,或者希望单元格折叠以仅显示该标签。
我尝试了所有我能想到的约束组合,但通常标签要么不会展开,要么最终会在标签应有的填充空间出现。
如果标签上没有文字,则设置为label.text = ""
。
每次设置文字时,我都会在标签上拨打sizeToFit()
。
答案 0 :(得分:0)
这可以使用iOS中的StackViews完成,
在情节提要中选择两个标签,然后将它们嵌入UIStackView
其中一项好处是,如果您声明了良好的约束条件,它将自动处理所请求的行为。
我建议本教程开始使用UIStackView
here
答案 1 :(得分:0)
更好的解决方案是$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
。
如果您仍然想和UIStackView
一起使用,可以再尝试一件事:
设置UILabel
会降低标签的高度,但是标签之间距离的限制不会使标签居中。
为此,添加距离约束的参考出口并进行设置:
label.text = ""
设置distanceConstraint.constant = 0
时以编程方式。
这会将标签的数据设置在中心。
希望这会有所帮助。
答案 2 :(得分:0)
您必须制作两个带有前,后,顶部和底部约束的标签,并且不要添加高度约束
使标签的行数= 0
检查标题标签,然后从大小检查器菜单中单击优先级为250而不是251的垂直内容,如屏幕所示
在viewController中连接您的tableview并添加以下行
self.tableView.rowHeight = UITableViewAutomaticDimension self.tableView.estimatedRowHeight = 44