2016-12-30 6 views
5

私のopen source libraryUIApplication.shared.preferredContentSizeCategoryに電話する必要があります。しかし、UIApplication.sharedは拡張機能では利用できません。ビルドエラーは、私の問題を解決するためのビューコントローラベースの方法を見つけることを示唆していますが、ライブラリを作成しているため、ビューコントローラにアクセスすることはできません。拡張機能のルートビューコントローラを取得する方法、または最外部を取得する方法はありますかUITraitEnvironmentアプリエクステンションのUIApplication.shared.preferredContentSizeCategoryに相当します。

私はiOS 9以降をサポートしていますが、これが可能ならばこの機能は10以上になる可能性があります。

+0

View Controllerが正しい値を提供していませんか? 'self.view.window.preferredContentSizeCategory'はどうでしょうか? –

+0

私はビューやウィンドウにいません。これは 'UITraitCollection'に追加するインスタンス関数です。現在の特性環境の現在の特性コレクションを探したいと思います。あなたは推論[ここ](https://github.com/Raizlabs/BonMot/issues/251)を見ることができます。私はちょうどその部分をコンパイルすることができましたが、実際には拡張で動的な型をサポートしています。 –

+0

私は 'sharedApplication'が実際にエクステンション内に存在することを言及することができます。アップルのエクステンションライフサイクルをどのように設定したかによって人為的にブロックされます。 'UIApplication.value(forKey:" sharedApplication ")として! UIApplication'はあなたが望むものをあなたに与えます。 ;-) –

答えて

1

UIScreen.main.traitCollection.preferredContentSizeCategoryを使用できます。 preferredContentSizeCategoryプロパティは、iOS 10以降で使用できます。

+0

これは確かに10 +で動作します:) –

関連する問題