SnapKit-无法通过循环遍历UIViews

时间:2018-04-24 14:50:12

标签: ios swift snapkit

我有多个TextFields,我想应用类似的布局约束。我创建了一个类型为(UITextField, UIView)的元组数组,而不是重复这些约束,其中UITextField是我想要添加约束的文本字段,视图是包含这种文本字段的视图。

我的代码如下:

    let textFields: [(UITextField, UIView)] = ...

    for textFieldTuple in textFields {
        let textField = textFieldTuple.0!
        let view = textFieldTuple.1!

        textField.snp.makeConstraints { (make) -> Void in
            make.top.equalTo(view.snp.top)
            make.bottom.equalTo(view.snp.bottom)
            make.left.equalTo(view.snp.left)
            make.right.equalTo(view.snp.right)
        }
    }

然而,当我运行我的应用程序时,由于闭包中的第一个约束,应用程序崩溃了。我能从这样的位置制作约束,还是应该为每个TextField明确写出它们?感谢

崩溃详情:

libc++abi.dylib: terminating with uncaught exception of type NSException

1 个答案:

答案 0 :(得分:1)

在两个项目之间设置约束之前,它们之间应该存在布局依赖关系,因此在设置约束之前将每个文本字段添加到相应的视图