• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

layoutSubviews와 layoutIfneeded() 메서드 차이

24.03.28 14:48 작성 조회수 72

0

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

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

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

헷갈리네요;;;

override func layoutSubViews() {

    ...

}

답변 2

·

답변을 작성해보세요.

0

듀듀님의 프로필

듀듀

질문자

2024.03.28

아하 답변감사합니다:)

0

네 듀듀 님,

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

self.layoutSubViews()     // 함수 호출


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

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


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

self.view.layoutIfneeded()


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

self.layoutSubViews()

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




감사합니다. :)