인프런 커뮤니티 질문&답변

듀듀님의 프로필 이미지
듀듀

작성한 질문수

앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지

앱의 내부 메커니즘의 이해 / 정리 (활용 앱50강)

layoutSubviews와 layoutIfneeded() 메서드 차이

작성

·

209

0

먼저 layoutSubViews는 직접 호출하면 안된다고 했는데요.

그러면 ViewCycleCustomBtn 프로젝트 내의 MyView에서

layoutSubViews가 아니라 layoutIfneede() 나 setNeedsLayout()을 써서 layoutSubViews가 호출되도록 해야 하는 거 아닌가요??

헷갈리네요;;;

override func layoutSubViews() {

    ...

}

답변 2

0

듀듀님의 프로필 이미지
듀듀
질문자

아하 답변감사합니다:)

0

앨런(Allen)님의 프로필 이미지
앨런(Allen)
지식공유자

네 듀듀 님,

직접 호출하면 안된다는 의미는..
아래 처럼, layoutSubViews함수를 직접 실행(호출) 시키면 안된다는 의미예요.

self.layoutSubViews()     // 함수 호출


당연히, 아래처럼 함수 내부의 원하는 구현 내용은,
함수 내부에서 구현하셔야 하고..

    override func layoutSubviews() {
        super.layoutSubviews()
        // 구현 내용 넣기
    }


아래처럼 layoutIfneeded()를 호출(실행)만 하시면,

self.view.layoutIfneeded()


내부적인 메커니즘에 의해서

self.layoutSubViews()

이걸 자동으로 호출시킨다는 의미 입니다. 그러면? 우리가 layoutSubViews() 함수에서 구현했던 내용이 자동으로 실행되겠죠?




감사합니다. :)

듀듀님의 프로필 이미지
듀듀

작성한 질문수

질문하기