翻转 UIStackView 中项目的位置
Flipping the positions of items in a UIStackView
我在 Interface Builder
中创建了一个 UIStackView
,其中包含两个视图。现在我正在尝试以编程方式更改这些视图的顺序(可以这么说,交换它们的位置)。
是否有一个简单的解决方法不使用Interface Builder来完成这个?
谢谢 :).
您可以将 UIStackView 的视图 semantic
从 Unspecified
更改为 Force Right-to-Left
以交换嵌套视图的位置。
您可以使用 addArragnedSubview
重新排序视图。
只需要 addArragnedSubview,因为将视图添加到新父视图时,它会从旧父视图中删除。
if self.viewsSwitched{
stackview.addArrangedSubview(self.stackview.subviews[0])
self.viewsSwitched = false
}else{
stackview.addArrangedSubview(self.stackview.subviews[1])
self.viewsSwitched = true
}
此代码通过每次调用交换堆栈视图中的两个视图
在 UIStackView
中创建一个包含 2 UIViews
的布局,如下所示:
为您的 UIStackView
和 UIViewController
创建一个出口。在 viewDidLoad
中对您的 UIStackView
调用 addArrangedSubview
以更改顺序。请参阅下面的代码段。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var stackView: UIStackView!
override func viewDidLoad() {
super.viewDidLoad()
// Switches order of the stackView
stackView.addArrangedSubview(self.stackView.subviews[0])
}
}
这应该是结果:
addArrangedSubview
获取给定的视图并将其添加到 arrangedSubviews 数组的末尾。在我们的例子中,我们在索引 [0] 处获取红色视图并将其添加到 UIStackView
.
的末尾(右侧)
我在 Interface Builder
中创建了一个 UIStackView
,其中包含两个视图。现在我正在尝试以编程方式更改这些视图的顺序(可以这么说,交换它们的位置)。
是否有一个简单的解决方法不使用Interface Builder来完成这个?
谢谢 :).
您可以将 UIStackView 的视图 semantic
从 Unspecified
更改为 Force Right-to-Left
以交换嵌套视图的位置。
您可以使用 addArragnedSubview
重新排序视图。
只需要 addArragnedSubview,因为将视图添加到新父视图时,它会从旧父视图中删除。
if self.viewsSwitched{
stackview.addArrangedSubview(self.stackview.subviews[0])
self.viewsSwitched = false
}else{
stackview.addArrangedSubview(self.stackview.subviews[1])
self.viewsSwitched = true
}
此代码通过每次调用交换堆栈视图中的两个视图
在 UIStackView
中创建一个包含 2 UIViews
的布局,如下所示:
为您的 UIStackView
和 UIViewController
创建一个出口。在 viewDidLoad
中对您的 UIStackView
调用 addArrangedSubview
以更改顺序。请参阅下面的代码段。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var stackView: UIStackView!
override func viewDidLoad() {
super.viewDidLoad()
// Switches order of the stackView
stackView.addArrangedSubview(self.stackView.subviews[0])
}
}
这应该是结果:
addArrangedSubview
获取给定的视图并将其添加到 arrangedSubviews 数组的末尾。在我们的例子中,我们在索引 [0] 处获取红色视图并将其添加到 UIStackView
.