iOS 11의 버그 수정 시 레이아웃 관련 변경 사항(con t e ntInsetAdjustmentBehavior, SafeAreaLayoutGuide)

2662 단어 Swiftios11iOS
다음은β단계적 정보에 기초한 내용.
이에 따라 GM 버전은 변경될 가능성이 있다.

개시하다


iOS 11 대응 시 레이아웃 주위에서 몇 가지 오류가 수정되었습니다.
이미 출판된 것도 있을 수 있지만 개인의 비망록도 정리해야 한다.

환경 확인


다음 환경을 사용합니다.
  • macOS Sierra Version 10.12.6
  • Xcode Version 9.0.0 β6
  • iOS11.0β10
  • Con t e ntInsetAdjustmentBehavior 정보


    이것은 iOS 11에서 UIScrollView가 새로 가져온 등록 정보입니다.
    자동적으로 contentInsets를 조정할지 여부를 결정합니다. 기본값은 자동화입니다.이에 따라 콘텐츠 인스타그램을 수동으로 설정한 상태에서 이를 고려하지 않으면 예상치 못한 고장이 발생할 수 있다.
    내가 확인한 범위 내에서 실행self.navigationController?.pushViewController(notifVC, animated: true)할 때 과도 애니메이션이 비스듬히 위로 변하는 현상이 발생했다.사건의 실제 인상에 관하여 아래의 자료를 참조하시오.
  • 참조
  • 고장에 대한 참고 자료
  • Apple 공식 문서 -con t e ntInsetAdjustmentBehavior
  • 대응 방법


    이전 레이아웃을 답습하느냐, 아니면 이전 논리를 iOS 11의 Con t e ntInset Adjustment Behavior와 결합하느냐에 따라 이전 레이아웃을 답습한다면 다음과 같다.
    if #available(iOS 11.0, *) {
        scrollView.contentInsetAdjustmentBehavior = .never
    }
    

    StoryBoard의 safeArea 설정 정보


    Story Board에 auto Layout을 설정할 때 Top Layout Guide, Bottom Layout Guide를 사용할 수 있는데 이것은 iOS 11에서 deprecated인 것 같다.
    Apple Document - TopLayoutGuide
    대신 SafeAreaLayoutGuide를 추천한다.
    Apple Document - SafeAreaLayoutGuide
    topLayoutGuide, bottomLayoutGuide가 deprecated가 되면서 iOS 11에 해당 constraints를 사용하는 경우 의도하지 않은 행동이 있을 수 있다.
    확인된 범위 내에서 화면이 이동할 때tableView가 위로 한 번 이동하고 되돌아오는 행위는 터미널 의존에서 발생합니다.(아이폰5에서만 발생)

    대응 방법


    StoryBoard에 설정된 검사 항목이 있으므로 여기서만 선택할 수 있습니다.
  • 참조: safeAreaLayoutGuide
  • 끝맺다


    이 정보가 누군가에게 도움이 된다면 정말 좋겠다.

    좋은 웹페이지 즐겨찾기