pdateConstraint, remakeConstraint, Reference 타입 변수 할당
SnapKit 에서는 기존의 제약 조건을 수정하기 위한 몇 가지 방식이 있다.
① updateConstraint
setNeedsUpdateConstraints 메서드 혹은 여러 trigger 에 의해 여러번 호출될 수 있다. updateConstraint 는 새로운 레이아웃을 줄 수 있는 remakeConstraint 와는 다르게 makeConstraints 에 들어가 있던 것들을 기준으로 수정이 가능하다.
button.snp.updateConstraint {
$0.width.equalTo(100)
}
② remakeConstraint
updateConstraint 와 비슷하지만, remakeConstraint 의 경우 SnapKit 에 의해 설정해놓은 모든 Constraint 가 사라진다.
func changeButtonPosition() {
self.button.snp.remakeConstraints {
// size 도 다시 부여해야 한다
$0.size.equalTo(self.buttonSize)
if topLeft {
$0.top.left.equalTo(100)
} else {
$0.bottom.equalTo(superView).offset(-50)
$0.right.equalTo(superView).offset(-50)
}
}
}
③ Reference 타입 변수 할당
Constraint 설정 결과를 로컬 변수나 클래스 속성에 할당하여 특정 제약 조건의 참조를 유지할 수 있다. 여러 구속 조건을 배열에 저장하여 참조할 수도 있다.
var topConstraint: Constraint? = nil
...
// when making constraints
view1.snp.makeConstraints {
self.topConstraint = $0.top.equalTo(superview).offset(padding.top).constraint
$0.left.equalTo(superview).offset(padding.left)
}
...
// then later you can call
self.topConstraint.deactivate()
// or if you want to update the constraint
self.topConstraint.updateOffset(5)
' iOS > SnapKit' 카테고리의 다른 글
SnapKit 키워드 정리 - 우선순위 설정 (1) | 2022.10.03 |
---|---|
SnapKit 키워드 정리 - equalTo, offset, inset 등 (1) | 2022.10.03 |
SnapKit 키워드 정리 - Anchor (0) | 2022.10.03 |