iOS Ellen

[iOS] UIView()와 UIView(frame: CGRect)의 초기화 차이점 본문

iOS/UIKit

[iOS] UIView()와 UIView(frame: CGRect)의 초기화 차이점

Ellen61 2022. 4. 19. 15:36

 

평소에UIView(frame: .zero)로 초기화하는 방식을 고수하는 편인데...

처음 사용했던 이유는 아카데미 리뷰어가 이 방식을 사용하셨기 때문이다.

 

하지만... 어차피 .zero로 줄 거면 그냥 UIView()로 만들어도 상관없지 않을까? 싶은데...

아래 블로그에서 해답을 얻을 수 있었다.

 

 

https://sujinnaljin.medium.com/uiview-init-%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC-581c61726778

 

[Swift] UIView.init() 에 대하여

눼에? UIView()가 UIView의 initializer가 아니라구여?

sujinnaljin.medium.com

 

 

결론을 말하자면

UIView()은 UIVIew(frame: .zero)처럼 frame이 (0.0, 0.0, 0.0, 0.0) 으로 생성된다는 점이다.

하지만!!!

 

UIView()는 UIView(frame: .zero) 보다 콜 스택이 추가적으로 두 단계가 발생한다.

아무래도 콜스택 단계가 더 추가된다는 것은 리소스를 사용하는 것이기 때문에 가능하면 frame을 입력하는 것이 좋지 않을까? 생각된다.

 

추가적으로 UIView()는 UIView 내부에서 convenience init으로 frame을 .zero로 지정하는 것이 아닐까?

하는 동기 코든의 의견도 있었다.

 

 

'iOS > UIKit' 카테고리의 다른 글

[iOS] 한 번에 여러뷰를 addSubView하기!  (0) 2022.04.19