我在故事板中有一个UIStackView
,像这样:
@IBOutlet weak var stackView: UIStackView!
我希望能够像这样以编程方式向这个UIStackView
添加视图:
let view = UIView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
view.backgroundColor = .gray
stackView.addArrangedSubview(view)
最初,添加的视图尺寸为50x50。当只添加了几个时,我希望它们保持50x50,并在屏幕中居中。
但是当你添加超过屏幕上有宽度的东西时,我希望它们的尺寸缩小。
这就是我想要的样子。第一行添加了三个50x50视图。下一行添加了更多内容,请注意它们的宽度如何缩小以适应屏幕的宽度:
使用UIStackView
并像这样以编程方式添加视图是否可能?
1条答案
按热度按时间a11xaf1n1#
是的,有可能。您可以设置以下内容:
约束条件:
1.添加一些你想要的高度限制。
1.为堆栈视图添加最小宽度。
1.将X和Y位置添加到堆栈视图。
StackView属性:
1.将对齐设置为填充。
1.将分布设置为均匀填充。
1.加一些空格,我加了5个。
代码:
1.取UIViewController类中栈视图宽度的IBOutlet。
1.计算堆栈视图的宽度为:
1.当更新或添加删除子视图时,将此宽度设置为堆栈视图的约束。
现在,以编程方式添加子视图。