OStack程序员社区-中国程序员成长平台

标题: ios - 如何使用自动布局处理 UITableViewCell 内的 UILabel? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 21:59
标题: ios - 如何使用自动布局处理 UITableViewCell 内的 UILabel?

如何使用自动布局处理 UITableViewCell 中的 UILabel ?根据该标签的长度..这是我的观点:

enter image description here

我希望蓝色标签位于中心,但如果它很长,则不要与同一单元格中的相邻标签交叉。

我在它们之间添加了约束,但它不会在中心。

对这种类型的细胞有什么好的限制吗?



Best Answer-推荐答案


让我们将标签命名为 title_labeldetail_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/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4