我正在尝试创建一个“3列”UITableViewCell
,其中每列包含UILabel
。两个最左边的标签很容易设置约束,它们是固定宽度,它们的文本不会超过它们的IB设置宽度。正确的标签虽然可能有一个长串,我想要实际上说,“你可以尽可能宽,直到你的宽度在超视角边缘的8个像素内。”
通过添加
,我已经接近了所需的效果override func layoutSubviews() {
ENTRY_LOG()
log.debug("\(self.frame.width)")
self.addConstraint(NSLayoutConstraint(item: self.destinationLabel, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: self.frame.width - 151))
self.setNeedsUpdateConstraints()
}
在自定义UITableViewCell
类中,但这现在具有破坏单元格高度和覆盖表行之间的默认行的不良影响。
答案 0 :(得分:1)
这是否有问题?一个> = 8px到superview constaint的尾随空间将完成你需要的东西。
关于你的评论:“第二栏被”粉碎“不存在” - 你应该能够通过将中心标签上的“压缩阻力优先级”设置为比最右边的值更大的值来解决这个问题标签
答案 1 :(得分:0)
如果您不希望高度由单元格内容的继承高度决定,则必须明确指定它。最好的方法是直接在表视图上设置行高:
tableView.rowHeight = 44
您还可以使用表格视图委托tableView:heightForRowAtIndexPath:
为特定单元格指定它