storyboard에서 레이아웃을 잡은 후 기기에서 테스트해보면 원하는대로 제대로 안되는 경우가 있다.
(예로 scrollview에 label, image view등을 넣어서 위치를 잡은 후 label이 멀티라인이 되어야 해서 label 아래의 view등의 y값을 앱 실행단계에서 정해 주어야 할 때)
// 기존 값을 모두 무시하도록 한다. (storyboard 상에서 값을 지정한 경우)
view.translatesAutoresizingMaskIntoConstraints = false
// 각 constraint를 직접 설정한다.
// item에 원하는 뷰 지정
// attribute에 원하는 속성
// toItem에 기준이 될 view 지정
// constant에 거리 지정
let leading = NSLayoutConstraint(item:view, attribute:.leading, relatedBy:.equal, toItem:scrollView, attribute:.leading, multiplier:1, constant:16)
// 마지막으로 모든 설정들을 활성화 해준다.
NSLayoutConstraint.activate([leading,,,,])
// label에 멀티 라인 지정시 height 계산
label에 text 넣고
label.sizeToFit()를 실행 한 후 height값을 가져오면 된다.
댓글 없음:
댓글 쓰기