[iOS] iPhone12 mini에서 StatusBar의 높이 취득이 기대한 동작을 하지 않는 대책

2439 단어 XcodeiOSSwift우이

발생한 사건


  • iPhone12 mini에서 statusBar height 를 레이아웃 계산에 사용하고 있으면 기대한 결과가 되지 않아 레이아웃이 어긋나 버렸다.

  • 환경


    Xcode 12.3
    Build version 12C33
    Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28)
    Target: x86_64-apple-darwin19.6.0
    

    검증


  • 실제로 샘플 앱을 만들고 시뮬레이터에서 얻은 값을 표시하려고했습니다

  • iPhone12





    iPhone12 mini





    iPhoneSE 2nd




  • iPhone12 mini에서는 safeArea와 statusBar height에서 차등이 발생하고 있는 것을 알았습니다.
  • 검증 코드 t-osawa-009/StatusBarTest

  • 대책


  • safeArea의 값을 사용하여 레이아웃 계산에 사용하도록 변경했습니다.
    let height = navigationController?.view.safeAreaInsets.top ?? 
    let height = view.safeAreaInsets.top
    

    요약


  • statusBar height == safeAreaInsets.top 아니다.
  • 향후는 safeArea를 기준으로 레이아웃을 짜는 것을 추천합니다.

  • 참고 링크



    htps : // 우자 rㄉ 아 f. 코 m / b ぉ g / 이 p 호네 - 12-sc 렌 - 시 s
    htps : //에서 ゔぇぺぺr. 아 ぇ. 코 m/후아루 ms/th레아 d/662466

    좋은 웹페이지 즐겨찾기