2016-09-24 4 views
1

인터페이스 빌더에서 크기가 50x50으로 설정된 UIView가 있습니다.스위프트 3 : UIView 크기가 잘못 읽음

뷰가 응용 프로그램에로드 된 후, 그것을 완벽하게 정상적으로 보이는,하지만 난 뒤에 크기를 인쇄 할 때의 그것이 내가 업데이트 할 때까지이 오류는 발생하지 1000.0

반환

override func awakeFromNib() { 
    print(self.frame.height) 
} 

로드받을 Swift 3.0에 대한 나의 프로젝트

변경된 내용이 있으신가요? 실제로 높이를 인쇄하는 이유는 실제로는 50.0이지만 1000.0을 반환합니다.

답변

1

UIView가 생명 서클의 그 시점에서 50x50으로 설정되지 않았기 때문입니다. 이 시점에서 표준 크기 인 1000.0입니다.

원은 다음과 같습니다 크기 등의 특성에

그때부터
init  
UIViewController awakeFromNib 
loadView 
UIView awakeFromNib 
UIViewController viewDidLoad 
viewWillAppear 
viewDidAppear 

는 작업 할 수 있습니다.

레이아웃에 초기에 액세스하려면 layoutIfNeeded 속성을 사용해야합니다.

self.layoutIfNeeded() 
layer.cornerRadius = self.frame.height/2.0 
layer.masksToBounds = true 
+0

좋아, 그게 내가 생각한거야,하지만 그걸 얻기 위해 어떤 방법을 사용해야합니까? – DCDC

+0

awakeFromNib에서 높이를 사용하여 –

+0

에서 사용하거나 viewDidAppear 뒤의 높이를 사용하십시오 –