swift 3 에서 AutoLayout 적용 후 하위 뷰의 width 값이 1000으로 이상하게 나올 경우

swift 3 에서 AutoLayout을 적용하였다. 
하위 뷰에 코드로 생성하여 프레임 단위로 버튼을 여러개 넣는데 잘 안나온다. 
로그를 찍어보니 Button.width = 1000 으로 나온다.
 view.width = 375 인데....,
 뭐가 잘못되었나?
 동적으로 생성되는 많은 버튼도 전부 AutoLayout 방식으로 하자니 그동안 계산으로 만들어 놓은 코드가 아깝다.
 단 한줄의 코드로 문제를 해결하였다. 
전체적인 아웃라인은 뷰를 이용하여 디자인 타임에 스토리보드에서 작성을 하고 동적 생성은 뷰에 프레임 계산해서 넣으면 된다. 
뷰가 로드 된 다음에 다음 줄을 넣어야만 정상적인 값이 나와서 계산이 가능하다. self.view.layoutIfNeeded()
나는 이런 방법으로 문제를 해결하였다.
 계산 값 바로 이전에 넣어도 되는데 귀찮아서 viewDidLoad() 에 넣었다.

댓글

이 블로그의 인기 게시물

한글 2010 에서 Ctrl + F10 누르면 특수문자 안뜰 때

아이폰에서 RFID 사용하는 방법

VCC 와 GND 는 무엇일까?