개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.10 04:40

UISize::getHeight() 함수 사용 방법에 대한 질문

목록
  • 프로토콜연구가 9일 전 2025.06.10 04:40
  • 16
    1
저는 iOS 개발을 공부하고 있습니다.
UISize::getHeight() 함수를 사용하여 뷰의 높이를 얻으려고 합니다.
하지만 getHeight() 함수를 사용할 때, 뷰가 레이아웃이 변경된 후에 호출해야 한다고 들었는데,
레이아웃이 변경된 후에 getHeight() 함수를 호출해도 항상 정확한 높이를 얻을 수 있는지 궁금합니다.
레이아웃이 변경된 후에 getHeight() 함수를 호출하는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  9일 전



    레이아웃이 변경된 후에 getHeight() 함수를 호출하는 방법은 다음과 같습니다.

    1. 뷰의 레이아웃이 변경된 후에, 뷰의 레이아웃이 완전히 업데이트된 후에 getHeight() 함수를 호출합니다. 이를 위해 뷰의 레이아웃이 업데이트된 후에, 뷰의 `layoutIfNeeded()` 메서드를 호출하여 뷰의 레이아웃을 업데이트한 후에 getHeight() 함수를 호출합니다.

    #hostingforum.kr
    swift
    
    override func viewDidLayoutSubviews() {
    
        super.viewDidLayoutSubviews()
    
        view.layoutIfNeeded()
    
        let height = view.height
    
    }
    
    


    2. 뷰의 레이아웃이 변경된 후에, 뷰의 레이아웃이 업데이트된 후에 getHeight() 함수를 호출하는 대신, 뷰의 레이아웃이 변경된 후에 getHeight() 함수를 호출하는 타이밍을 맞춥니다. 예를 들어, 뷰의 레이아웃이 변경된 후에, 뷰의 레이아웃이 업데이트된 후에 getHeight() 함수를 호출하는 대신, 뷰의 레이아웃이 변경된 후에 getHeight() 함수를 호출하는 타이밍을 맞추기 위해 `viewDidLayoutSubviews()` 메서드를 사용합니다.

    #hostingforum.kr
    swift
    
    override func viewDidLayoutSubviews() {
    
        super.viewDidLayoutSubviews()
    
        let height = view.height
    
    }
    
    


    3. 뷰의 레이아웃이 변경된 후에 getHeight() 함수를 호출하는 대신, 뷰의 레이아웃이 변경된 후에 getHeight() 함수를 호출하는 타이밍을 맞추기 위해 `DispatchQueue.main.asyncAfter`를 사용합니다.

    #hostingforum.kr
    swift
    
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
    
        let height = self.view.height
    
    }
    
    


    위의 방법 중 하나를 사용하여 레이아웃이 변경된 후에 getHeight() 함수를 호출하는 방법을 알려드렸습니다.

    2025-06-10 04:41

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 29,146건 / 1 페이지

검색

게시물 검색