2016-12-30 5 views
5

에있는 UIApplication.shared.preferredContentSizeCategory와 같습니다. 내 open source libraryUIApplication.shared.preferredContentSizeCategory을 호출 할 수 있어야합니다. 그러나 UIApplication.shared은 확장 프로그램에서 사용할 수 없습니다. 빌드 오류는 내 문제를 해결하기 위해 뷰 컨트롤러 기반의 방법을 찾았지만 라이브러리를 작성 중이므로 모든 뷰 컨트롤러에 액세스 할 수 없다는 것을 의미합니다. 확장의 루트보기 컨트롤러를 얻는 방법이 있습니까, 아니면 가장 바깥 쪽을 가져 오는 방법입니까 UITraitEnvironment?앱 확장

iOS 9 이상을 지원하지만이 기능을 사용하면 10 이상이 될 수 있습니다.

+0

보기 컨트롤러가 올바른 값을 제공하지 않습니까? 'self.view.window.preferredContentSizeCategory'는 어떻습니까? –

+0

뷰 또는 창에 없습니다. 이것은'UITraitCollection'에 추가 할 인스턴스 함수이며 현재 특성 환경의 현재 특성 컬렉션을 찾고 싶습니다. 추론을 볼 수 있습니다 (https://github.com/Raizlabs/BonMot/issues/251). 나는 그 부분을 컴파일 할 수 있었지만 실제로는 확장에서 동적 유형을 지원할 것입니다. –

+0

'sharedApplication'은 확장 기능에 실제로 존재한다고 언급 할 수 있습니다. 확장 기능 라이프 사이클을 Apple이 어떻게 설정했는지에 따라 인위적으로 차단되었습니다. UIApplication.value (forKey : "sharedApplication") as! UIApplication'은 당신이 원하는 것을 줄 것입니다. ;-) –

답변

1

UIScreen.main.traitCollection.preferredContentSizeCategory을 사용할 수 있습니다. preferredContentSizeCategory 속성은 iOS 10 이상에서 사용할 수 있습니다.

+0

이것은 실제로 10+에서 작동합니다. :) –