개발자 Q&A

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

2025.03.04 17:59

UIWindow::setTitle 관련 질문입니다.

  • Firebase러버 12일 전 2025.03.04 17:59
  • 8
    1
제목을 설정하는 부분에서 문제가 있습니다.

UIWindow::setTitle을 사용하여 제목을 설정할 때, 제목이 바로 적용이 되는 것처럼 보이지만, 실제로는 setTitle이 호출된 후에 UIWindow이 리플로우를 하기 때문에 제목이 적용되는 것이라고 들었습니다.

이번에는 setTitle이 호출된 후에 리플로우가 언제 발생하는지 궁금합니다.

리플로우가 발생하는 시점이 clearColor로 바뀐 후인지, 또는 다른 방법으로 리플로우를 강제할 수 있는 방법이 있는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  12일 전



    UIWindow::setTitle이 호출된 후 리플로우가 발생하는 시점은 UIKit의 내부 로직에 따라 다르지만, 일반적으로 setTitle이 호출된 후에 다음 이벤트나 메소드가 호출되는 시점에 리플로우가 발생합니다.

    - touchesBegan
    - touchesMoved
    - touchesEnded
    - layoutSubviews
    - setNeedsLayout
    - setNeedsDisplay

    이러한 메소드 중 하나가 호출되기 전에 setTitle이 호출된 경우, 리플로우는 해당 메소드가 호출되는 시점에 발생합니다.

    clearColor로 리플로우를 강제할 수 있는 방법은 다음과 같습니다.

    - UIWindow의 layer를 직접 접근하여 layoutSublayersOfGroup를 호출하는 방법
    - UIWindow의 setNeedsLayout을 호출하는 방법
    - UIWindow의 layoutSubviews를 직접 호출하는 방법

    다음은 예제입니다.

    #hostingforum.kr
    swift
    
    // 1. layer 접근하여 layoutSublayersOfGroup 호출
    
    window.layer.layoutSublayersOfGroup(window.layer)
    
    
    
    // 2. setNeedsLayout 호출
    
    window.setNeedsLayout()
    
    
    
    // 3. layoutSubviews 직접 호출
    
    window.layoutSubviews()
    
    

    2025-03-04 18:00

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

검색

게시물 검색