iOS) stackView의 frame.width가 0.0으로 나올때 (feat. layoutIfNeeded())

2022. 2. 15. 16:28iOS/iOS memo

728x90
반응형

https://stackoverflow.com/questions/62121352/why-view-frame-width-returns-zero

 

Why view.frame.width returns zero?

I created stackView and added three labels to it. Also I put these constraints let nameLabel = UILabel() //set .text, .mode and other for nameLabel let ellipsisLabel = UILabel() //set .text, .mode...

stackoverflow.com

개발자 사는거 다 똑같..!

 

왜 내 width가 zero를 리턴하나요..!

 

stackView안에 uiImage가 set된 Button을 5개 넣고,

stackView의 frame.width를 계산하고 싶었는데 자꾸 0.0이 리턴되었다.

 

제약 조건을 활성화하는 것만으로는 뷰가 레이아웃되지 않습니다. 하위 뷰를 즉시 레이아웃하기 위해 stackView가 필요한 경우 다음과 같이 지시해야 합니다.



stackView.layoutIfNeeded()
요놈으로 frame.width의 값을 확인할 수 있었는데

레이아웃을 강제 실행하면 불필요한 계산이 발생할 수 있으므로(나중에 그리기 주기에서 레이아웃이 변경되는 경우) 실제로 필요한 경우가 아니면 일반적으로 .layoutIfNeeded() 호출을 피해야 합니다. 라고함. 참고하기..










728x90
반응형