在 uiviewcontroller 上创建一个 space 2 个不同对象的循环
create a loop to space 2 different objects on a uiviewcontroller
我下面的代码正是我正在寻找的问题,它只是在 uibtton 中执行此操作。我想用 2 个 uitextfields 和 2 个 uilabels 做同样的事情。所以 textfield 到 uilabel 到 textfield 到 uilabel。我假设您只需要更改 "button in" 但我不知道用什么来更改它。我希望对象之间的间距为 40,如下所示。
func setConstraints() {
var yPosition: CGFloat = 0
[undoButton, clearButton, color].forEach { button in
NSLayoutConstraint.activate([
button.trailingAnchor.constraint(equalTo: view.centerXAnchor, constant :25),
button.topAnchor.constraint(equalTo: view.centerYAnchor, constant : yPosition),
button.widthAnchor.constraint(equalToConstant: CGFloat(widthBox)),
button.heightAnchor.constraint(equalToConstant: 20)
])
yPosition += 40
}
}
只需将您的文本字段和标签按所需顺序放入数组中,然后用它替换 [undoButton, clearButton, color]
部分。从技术上讲,您 不需要 更改 button in
部分,因为它只是一个变量名。
[textField1, label1, textField2, label2].forEach { view in
NSLayoutConstraint.activate([
view.trailingAnchor.constraint(equalTo: view.centerXAnchor, constant :25),
view.topAnchor.constraint(equalTo: view.centerYAnchor, constant : yPosition),
view.widthAnchor.constraint(equalToConstant: CGFloat(widthBox)),
view.heightAnchor.constraint(equalToConstant: 20)
])
yPosition += 40
}
请注意,UIStackView
可能会让您的生活更轻松。我建议你看看如何使用它。
我下面的代码正是我正在寻找的问题,它只是在 uibtton 中执行此操作。我想用 2 个 uitextfields 和 2 个 uilabels 做同样的事情。所以 textfield 到 uilabel 到 textfield 到 uilabel。我假设您只需要更改 "button in" 但我不知道用什么来更改它。我希望对象之间的间距为 40,如下所示。
func setConstraints() {
var yPosition: CGFloat = 0
[undoButton, clearButton, color].forEach { button in
NSLayoutConstraint.activate([
button.trailingAnchor.constraint(equalTo: view.centerXAnchor, constant :25),
button.topAnchor.constraint(equalTo: view.centerYAnchor, constant : yPosition),
button.widthAnchor.constraint(equalToConstant: CGFloat(widthBox)),
button.heightAnchor.constraint(equalToConstant: 20)
])
yPosition += 40
}
}
只需将您的文本字段和标签按所需顺序放入数组中,然后用它替换 [undoButton, clearButton, color]
部分。从技术上讲,您 不需要 更改 button in
部分,因为它只是一个变量名。
[textField1, label1, textField2, label2].forEach { view in
NSLayoutConstraint.activate([
view.trailingAnchor.constraint(equalTo: view.centerXAnchor, constant :25),
view.topAnchor.constraint(equalTo: view.centerYAnchor, constant : yPosition),
view.widthAnchor.constraint(equalToConstant: CGFloat(widthBox)),
view.heightAnchor.constraint(equalToConstant: 20)
])
yPosition += 40
}
请注意,UIStackView
可能会让您的生活更轻松。我建议你看看如何使用它。