如何使用自动布局处理 UITableViewCell 中的 UILabel ?根据该标签的长度..这是我的观点:
我希望蓝色标签位于中心,但如果它很长,则不要与同一单元格中的相邻标签交叉。
我在它们之间添加了约束,但它不会在中心。
对这种类型的细胞有什么好的限制吗?
Best Answer-推荐答案 strong>
让我们将标签命名为 title_label 和 detail_label ,即在您的第三个单元格中,“服务”是标题,另一个长标签是详细信息。
我。将 title_label 的前导空格设置为 superview 根据您的需要设置常量。并创建它的导出让它成为constraint_title_leading 。
二。 title_label 在容器中垂直居中。
三。现在将 detail_label 的前导空格设置为 title_label 的尾部。设常数为 8 点。创建一个导出,让它的名字是 constraint_detail_leading
四。将 detail_label 设置为垂直居中 w.r.t title_label 或 superview。
六。将 detail_label 的内容对齐设置为居中。
七。将详细标签的尾随空格设置为 superview 不关心它的常量,我们将在代码中更改它。让它的名字是 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 的中心约束将其固定到顶部和底部 w.r.t super View ,以便顶部常量等于底部常量并设置其 numberOfLines 为 0。并设置 self.tableView.rowHeight = UITableViewAutomaticDimension
关于ios - 如何使用自动布局处理 UITableViewCell 内的 UILabel?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/39259107/
|