반응형
iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다.
NSLayoutConstraint의 multiplier 값을 변경하려고 보니
Only-get으로만 값을 받을 수 있고, 값을 설정할 수가 없었다.
그래서 구글링을 해본 결과 스택오버플로우에서 Constraint 값을 제거하고,
새로운 Constraint를 설정해줄 때 multiplier 값을 변경하여 등록해주는 코드를 발견했다.
밑의 코드를 참고하면 된다.
import UIKit
extension NSLayoutConstraint {
func setMultiplier(multiplier: CGFloat) -> NSLayoutConstraint {
NSLayoutConstraint.deactivate([self])
let newConstraint = NSLayoutConstraint(item: firstItem, attribute: firstAttribute, relatedBy: relation, toItem: secondItem, attribute: secondAttribute, multiplier: multiplier, constant: constant)
newConstraint.priority = priority
newConstraint.shouldBeArchived = self.shouldBeArchived
newConstraint.identifier = self.identifier
NSLayoutConstraint.activate([newConstraint])
return newConstraint
}
}
- NSLayoutConstraint Multiplier 값 변경하는 함수
@IBOutlet var newConstraints: NSLayoutConstraint!
override func viewDidLoad() {
newConstraints = newConstraints.setMultiplier(multiplier: 0.16)
}
- setMultiplier 사용방법
반응형
'iOS > 코드조각' 카테고리의 다른 글
[iOS, Swift] 화면 세로로 고정하기 (0) | 2022.10.18 |
---|---|
[iOS, Swift] 아이폰, 아이패드 디바이스 확인방법 (0) | 2022.10.18 |
[iOS, Swift] 텍스트뷰 라인 수 제한하기 (0) | 2022.10.13 |
[iOS, Swift] 파일 이름, 날짜 정보 가져오기 (0) | 2022.10.13 |
[iOS, Swift] UISlider 내부 이미지 Radius 값 주기 (0) | 2022.10.08 |