2017-11-24 1 views
0

저는 Swift와 함께 SnapKit을 사용하고 있으며, 연습을 통해 퀴즈 응용 프로그램을 만듭니다. 현재 제약 조건을 만들고 있는데 제약 조건에 새로운 제약 조건을 추가하고 싶습니다.SnapKit을 사용하여 기존 제약 조건에 새로운 제약 조건을 추가하기가 어렵습니다.

"값의 형식이 잘못되었습니다. '()에 멤버 answerButtonsConstraints가 없습니다.

하지만 이유를 모르겠습니다. 누군가 도움을 청할 수 있습니까?

나는 remakeConstraints SnapKits를 사용하여 제약 조건을 다시 시도했지만, 기대했던 결과를 얻지 못했습니다. 간단한 구문 변경으로 올바른 결과를 만들 수는 있지만 형식을 지정하는 방법은 확실하지 않으시기 바랍니다. 어떤 도움이라도 대단히 감사 할 것입니다. 내 오류가 발생하고 어디는 answersButtonsConstrains.append(). self.answerButtons를 말한다가 바닥 ....에서

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) 
     } 
    } 
} 

이다.

답변

2

당신이 구문 오류를 가지고 : 당신이하지 .

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) 
     } 
    }) 

후 또는 당신이 좀 더 쉽게 읽을 수 있도록 할 제약 조건에 대한 로컬 변수를 만들 경우, 괄호 안에 append 방법으로 인수를 전달해야합니다

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) 
} 
관련 문제