2016년 11월 27일 일요일

[ios swift 3] 코드로 layout 잡기

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값을 가져오면 된다.

댓글 없음:

댓글 쓰기