如何使用自动布局处理 UITableViewCell 内的 UILabel ?根据该标签的长度..这是我的观点:
我希望蓝色标签位于中心,但如果它很长,则不要与同一单元格中的相邻标签交叉。
我在它们之间添加了约束,但它不会位于中心。
对于这种类型的单元有什么好的限制吗?
最佳答案
让我们将标签命名为 title_label
和 detail_label
,即在第三个单元格“服务”中是标题,另一个长标签是详细信息。
我。将 title_label 的前导空格设置为 superview 根据您的需要设置常量。并创建其导出,并将其设为 constraint_title_leading
。
二.设置 title_label
在容器中垂直居中。
三.现在将 detail_label
的前导空格设置为 title_label
的尾随空格。设常数为8点。创建一个 socket ,其名称为 constraint_detail_leading
四。将detail_label设置为相对于title_label
或 super View 垂直居中。
六。将 detail_label
的内容对齐方式设置为居中。
constraint_detail_trailing
八.设置单元格的数据源后调用此方法。
func adjustConstraints() -> Void {
let titleWidth = (self.title_label.text! as NSString).boundingRectWithSize(CGSizeMake(600, 600), options: .UsesLineFragmentOrigin,
attributes: [NSFontAttributeName : self.title_label.font], context: nil).width
self.constraint_detail_trailing.constant = self.constraint_title_leading.constant + titleWidth + self.constraint_detail_leading.constant
self.layoutIfNeeded()
}
要启用多行,即行的动态高度,而不是将 detail_label
的中心约束固定到 super View 的顶部和底部,以便顶部常量等于底部常量并设置其 numberOfLines
为 0。并设置 self.tableView.rowHeight = UITableViewAutomaticDimension
关于ios - 如何使用自动布局处理 UITableViewCell 内的 UILabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39259107/