ios 将视图添加到UIStackView中,并将其缩小到屏幕宽度的极限

ni65a41a  于 2023-05-30  发布在  iOS
关注(0)|答案(1)|浏览(109)

我在故事板中有一个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并像这样以编程方式添加视图是否可能?

a11xaf1n

a11xaf1n1#

是的,有可能。您可以设置以下内容:

约束条件:

1.添加一些你想要的高度限制。
1.为堆栈视图添加最小宽度。
1.将X和Y位置添加到堆栈视图。

StackView属性:

1.将对齐设置为填充。
1.将分布设置为均匀填充。
1.加一些空格,我加了5个。

代码:

1.取UIViewController类中栈视图宽度的IBOutlet。
1.计算堆栈视图的宽度为:

width = ({number of subviews} * {width of one subview}) + ({number of subviews - 1} * {stack view spacing added in step 3 of properties})

1.当更新或添加删除子视图时,将此宽度设置为堆栈视图的约束。
现在,以编程方式添加子视图。

相关问题