ios - SnapKit- 无法通过循环访问 UIViews 添加约束

标签 ios swift snapkit

我有多个 TextField,我想对其应用类似的布局约束。我没有重复这些约束,而是创建了一个类型为 (UITextField, UIView) 的元组数组,其中 UITextField 是我要添加约束的文本字段,而 view 是包含此类的 View 文本域。

我的代码如下:

    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:以 NSException 类型的未捕获异常终止

最佳答案

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

关于ios - SnapKit- 无法通过循环访问 UIViews 添加约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50004674/

相关文章:

swift - UIScrollView 破坏 subview 中的手势识别器

android - 如何将Firebase和Snap Creative Kit作为Gradle依赖项包括在内

ios - iOS中如何管理数据库

iphone - 为什么 [NSURL URLWithString :] escapes some characters in url string and doesn't for other characters?

ios - 显示 YouTube 注释 - iOS 应用程序

iOS11 - 无限期地在后台运行应用程序

ios - 为什么标签的高度为零?

c# - Xamarin 异常中的 Microsoft Vision API

swift - 3D Touch 和 SpriteKit

ios - 为什么在通过消息共享内容时,文本撰写中缺少取消按钮?