Swift 버전
Swift 3 업데이트
이 예제는 Interface Builder에서 수행하는 것과 동일한 다음 제약 조건을 프로그래밍 방식으로 추가하는 두 가지 방법을 보여줍니다.
너비와 높이
컨테이너 중심
상용구 코드
override func viewDidLoad() {
super.viewDidLoad()
let myView = UIView()
myView.backgroundColor = UIColor.blue
myView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(myView)
}
방법 1 : 앵커 스타일
myView.widthAnchor.constraint(equalToConstant: 200).isActive = true
myView.heightAnchor.constraint(equalToConstant: 100).isActive = true
myView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
myView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
방법 2 : NSLayoutConstraint 스타일
NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 200).isActive = true
NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 100).isActive = true
NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.centerX, relatedBy: NSLayoutRelation.equal, toItem: view, attribute: NSLayoutAttribute.centerX, multiplier: 1, constant: 0).isActive = true
NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.centerY, relatedBy: NSLayoutRelation.equal, toItem: view, attribute: NSLayoutAttribute.centerY, multiplier: 1, constant: 0).isActive = true
메모
- 앵커 스타일은 스타일보다 선호되는 방법
NSLayoutConstraint
이지만 iOS 9에서만 사용할 수 있으므로 iOS 8을 지원하는 경우에도 NSLayoutConstraint
스타일 을 사용해야합니다 .
- 프로그래밍 방식으로 제약 조건 만들기 문서 도 참조하세요 .
- 고정 제약을 추가하는 유사한 예는 이 답변 을 참조하십시오 .