[iOS10] Today Extension (Widget)의 빠짐(iPad)
환경
OS: iOS10
기기: iPad(iPad Pro 12.9인치 제외)
위젯 배치
iPad에서 화면을 Landscape로 설정하면 위젯을 왼쪽 또는 오른쪽 열에 배치할 수 있습니다.
화면을 Portrait로 하면 1열이 됩니다.
(iPad Pro 12.9인치 제외)
빠는거리
문제는 위젯을 오른쪽 열에 배치했을 때, 예를 들어 Landscape에서 Portrait로 화면을 회전하면 위젯의 화면 크기가 변경되지 않고 Landscape 용 위젯이 끝나면서 Portrait 용 위젯이 시작됩니다. .
언제든지 Landscape에서 보는 위젯과 Portrait에서 보는 위젯은 다른 인스턴스입니다.
주석
로그
Landscape에서 Portrait로 만들 때
Landscape 오른쪽 열
Portrait
viewWillDisappear
viewDidLoad()
widgetActiveDisplayModeDidChange(_:withMaximumSize:)
widgetPerformUpdate(completionHandler:)
viewDidDisappear
viewWillAppear
deinit
viewDidAppear
문제
「화면의 회전에서는 위젯의 화면 사이즈가 바뀔 뿐」이라고 하는 전제로 코딩하면, 화면을 회전하면 초기치가 표시되는 등의 현상에 휩쓸립니다.
대책
viewWillDisappear에서 UserDefaults 등에 데이터를 저장하고 다른 인스턴스가 viewWillAppear에서 읽도록 하여 데이터를 동기화하도록 합니다.
deinit으로 데이터를 저장하면 다른 인스턴스가 이미 시작되었으므로 데이터를 동기화할 수 없습니다.
Reference
이 문제에 관하여([iOS10] Today Extension (Widget)의 빠짐(iPad)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Hackenbacker/items/8dfbe798de5d81c2c659텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)