我正在尝试学习自动布局,但却陷入了困境。
这是我想要实现的,我有一个自定义的tableView单元格,其中我有一个imageView和3个标签和一个按钮。
我试图改变他们的抗压力优先级和拥抱优先级但失败了。那么有人可以指导我如何做到这一点?
答案 0 :(得分:0)
如果你的标签固定大小(numberOfLines!= 0),他们会自动显示......如果文字内容不适合。
要构建视图布局,请查看新的(从iOS 9开始)UIStackView,它允许堆叠视图并管理其自动布局。
您需要的一种可能方法是在UIStackView中包含三个标签。然后使用自动布局约束来排列UIStackView,按钮和图像。您的一个约束应该使UIStackView具有一定的固定宽度和/或高度,以便您可以控制标签的大小:
使用视觉语言:H:[myStackView(== 280)]或
theView.addConstraint(NSLayoutConstraint(item: myStackView, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.width, multiplier: 1, constant: 280))
以下是以编程方式创建UIStackView的示例代码以及Apple的文档链接: https://developer.apple.com/reference/uikit/uistackview
示例代码有两个水平堆叠,居中且大小相等的标签,相隔40个。您需要垂直堆叠标签。
let stackView = UIStackView(arrangedSubviews: [negativeResponseButton, positiveResponseButton])
stackView.axis = .horizontal
stackView.distribution = .fillEqually
stackView.alignment = .center
stackView.spacing = 40