替换 UIStackView 中的视图?

Replace view inside UIStackView?

我有 UIStackView,其中包含 3 个子视图。它是通过故事板创建的。

如果我在某些情况下需要用另一个子视图替换中间的子视图怎么办?在不以编程方式重新创建整个堆栈视图的情况下解决此问题的最佳方法是什么? objective-C和Swift两种方案都适用。

Link 将 stackview 作为 IBOutlet 保存到文件中,然后您可以访问其中的 arrangedViews 并替换数组中间的那个。

首先,创建一个 IBOutlet:

@IBOutlet weak var stackView: UIStackView!

...然后 link 故事板内部的堆栈视图。

要从您的 UIStackView 中删除视图,请输入:

stackView.removeArrangedSubview(yourView)

然后,您可以通过以下方式添加另一个视图:

stackView.insertArrangedSubview(anotherView, at: 1)