【问题标题】:create a loop to space 2 different objects on a uiviewcontroller在 uiviewcontroller 上创建一个循环来分隔 2 个不同的对象
【发布时间】:2019-11-07 02:23:18
【问题描述】:

我下面的代码正是我正在寻找的问题,它只是在 uibtton 中执行此操作。我想用 2 个 uitextfields 和 2 个 uilabels 做同样的事情。所以文本字段到 uilabel 到文本字段到 uilabel。我假设你只需要更改“按钮”,但我不知道用什么来更改它。我想要像下面这样彼此间隔 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
}

}

【问题讨论】:

    标签: loops for-loop foreach nslayoutconstraint cgfloat


    【解决方案1】:

    只需将您的文本字段和标签按所需顺序放入一个数组中,然后用它替换 [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 可能会让您的生活更轻松。我建议你看看如何使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 2019-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多