在 swift 中,如何在滚动视图的堆栈视图中使用 for 循环添加按钮?
In swift, how do you add button using a for loop in stack view in scroll view?
我分别在其中添加了两个滚动视图和两个垂直堆栈视图。约束已经设置好了。我已将两个堆栈视图连接为 ViewController.swift 中的出口集合。假设我有一个字符串数组,比如
我想使用 for 循环在顶部堆栈视图中添加几个按钮(与标签的长度相同)。我该怎么做呢?由于堆栈视图是滚动视图,我是否需要指定两个按钮之间的距离?
我的代码如下。
@IBOutlet var topStackView: [UIStackView]!
@IBOutlet var bottomStackView: [UIStackView]!
@IBOutlet weak var enterItemTextField: UITextField!
let labels = ["a", "b", "c", "d", "e"]
override func viewDidLoad() {
super.viewDidLoad()
enterItemTextField.delegate = self
var buttons = [UIButton()]
for _ in 0..<labels.count {
let button = UIButton(type: UIButton.ButtonType.system)
# some operations on button
buttons.append(button)
}
# what do I do here?
}
堆栈视图调整位置的自由度较低。我已经删除了堆栈视图并直接将按钮放在滚动视图上。
之后你需要它
buttons.append(button)
topStackView.addArrangedView(button)
顺便说一句,对于单个项目,您不需要 collection 所以
@IBOutlet var topStackView: UIStackView!
@IBOutlet var bottomStackView: UIStackView!
而不是
@IBOutlet var topStackView: [UIStackView]!
@IBOutlet var bottomStackView: [UIStackView]!
Do I need to specify the distance between two buttons?
不,你不必这样做,但你可以这样做
topStackView.spacing = 20
我分别在其中添加了两个滚动视图和两个垂直堆栈视图。约束已经设置好了。我已将两个堆栈视图连接为 ViewController.swift 中的出口集合。假设我有一个字符串数组,比如
我想使用 for 循环在顶部堆栈视图中添加几个按钮(与标签的长度相同)。我该怎么做呢?由于堆栈视图是滚动视图,我是否需要指定两个按钮之间的距离?
我的代码如下。
@IBOutlet var topStackView: [UIStackView]!
@IBOutlet var bottomStackView: [UIStackView]!
@IBOutlet weak var enterItemTextField: UITextField!
let labels = ["a", "b", "c", "d", "e"]
override func viewDidLoad() {
super.viewDidLoad()
enterItemTextField.delegate = self
var buttons = [UIButton()]
for _ in 0..<labels.count {
let button = UIButton(type: UIButton.ButtonType.system)
# some operations on button
buttons.append(button)
}
# what do I do here?
}
堆栈视图调整位置的自由度较低。我已经删除了堆栈视图并直接将按钮放在滚动视图上。
buttons.append(button)
topStackView.addArrangedView(button)
顺便说一句,对于单个项目,您不需要 collection 所以
@IBOutlet var topStackView: UIStackView!
@IBOutlet var bottomStackView: UIStackView!
而不是
@IBOutlet var topStackView: [UIStackView]!
@IBOutlet var bottomStackView: [UIStackView]!
Do I need to specify the distance between two buttons?
不,你不必这样做,但你可以这样做
topStackView.spacing = 20