ios - 使用 SnapKit,发现很难将新约束附加到现有约束

标签 ios swift xcode

我目前正在将 SnapKit 与 Swift 结合使用,使用演练来制作测验应用程序。我目前正在制定一些约束,并想将一些新约束附加到我的约束数组中

我收到错误消息“元组类型 '()' 的值没有成员 answerButtonsConstraints”。

但是我不明白为什么。有人可以帮忙吗。

我尝试使用 SnapKits remakeConstraints 重新制作约束,但我没有得到我希望的结果。我希望我可以通过简单的语法更改来创建正确的结果,但不确定如何格式化它。非常感谢任何帮助。

var answersButtonsConstraints = [

    self.answerButtons[0].snp.makeConstraints { (make) in
        make.leading.equalTo(answerView)
        make.trailing.equalTo(answerButtons[1].snp.leading).offset(MultipleChoiceViewController.buttonPadding)
        make.top.equalTo(answerView.snp.top)
        make.bottom.equalTo(answerButtons[2].snp.top).offset(MultipleChoiceViewController.buttonPadding)
    },

    self.answerButtons[1].snp.makeConstraints { (make) in
        make.trailing.equalTo(answerView)
        make.top.equalTo(answerView)
        make.bottom.equalTo(answerButtons[3]).offset(MultipleChoiceViewController.buttonPadding)
    },

    self.answerButtons[2].snp.makeConstraints { (make) in
        make.leading.equalTo(answerView)
        make.trailing.equalTo(answerButtons[3].snp.leading).offset(MultipleChoiceViewController.buttonPadding)
        make.bottom.equalTo(answerView)
    },

    self.answerButtons[3].snp.makeConstraints { (make) in
        make.trailing.equalTo(answerView)
        make.bottom.equalTo(answerView)
    }]

    for index in 1..<answerButtons.count {

        answersButtonsConstraints.append().self.answerButtons[index].snp.makeConstraints { (make) in
            make.height.equalTo(answerButtons[index-1].snp.height)
            make.width.equalTo(answerButtons[index-1].snp.width)
        }
    }
}

在底部,它说 answersButtonsConstrains.append().self.answerButtons.... 是我收到错误的地方。

最佳答案

那里有语法错误:您需要将参数传递给方括号内的 append 方法,而不是在 之后。

    for index in 1..<answerButtons.count {
        answersButtonsConstraints.append(self.answerButtons[index].snp.makeConstraints { (make) in
            make.height.equalTo(answerButtons[index-1].snp.height)
            make.width.equalTo(answerButtons[index-1].snp.width)
        }
    })

或者如果你想让它更具可读性,可以为约束创建一个局部变量:

for index in 1..<answerButtons.count {
        let constraint = self.answerButtons[index].snp.makeConstraints { (make) in
        make.height.equalTo(answerButtons[index-1].snp.height)
        make.width.equalTo(answerButtons[index-1].snp.width)
    }
    answersButtonsConstraints.append(constraint)
}

关于ios - 使用 SnapKit,发现很难将新约束附加到现有约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47472800/

相关文章:

ios - 访问 Metal 文件中的快速结构或类

ios - 在 UITextField 上保存和加载文本

ios 动态改变 View 的大小

ios - 如何在 IOS 上去除图像的方形比例裁剪

swift - 如何从通用函数返回值作为协议(protocol)的实现?

swift - 保持单元格内按钮的选定状态

iOS - 关于 setAlpha 的导入与前向声明

iphone - “类消息的接收者类型“CCParticleBatchNode”是前向声明”

ios - 在 UILabel 上使用捏合手势调整字体大小和标签框架?

objective-c - 如何阻止 UIPanGestureRecognizer 识别点击