ios - 如何使用自动布局处理 UITableViewCell 内的 UILabel?

标签 ios uitableview cocoa-touch autolayout

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

enter image description here

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

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

对于这种类型的单元有什么好的限制吗?

最佳答案

让我们将标签命名为 title_labeldetail_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 的内容对齐方式设置为居中。

七.将详细信息标签的尾随空格设置为 super View ,不关心其常量,我们将在代码中更改它。让它的名称为 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/

相关文章:

ios - Ionic 4 - 应用内购买产品信息在购买前无法显示

ios - 水平和垂直重复图像

ios - UITableViewCell 中的 UIPanGestureRecognizer 无法识别左 Pan

ios - 奇怪的快速插值错误 : Could not find member 'convertFromStringInterpolationSegment'

objective-c - 滑动 Custome UITableViewCell/Custom UITableViewController 时内存泄漏

iphone - 使用 Web 服务的 AFNetworking 身份验证

ios - 将 UIView 移动限制为仅垂直或水平轴

ios - UITextView 改变高度从纵向到横向

iphone - 分配 - 添加为附件 View - 发布 : does it leak?

objective-c - 以编程方式访问导航 Controller 的主视图