カスタムアピアランス属性(カスタムフォント、色)を持つUINavigationBarにUIBarButtonItemがあります。これは通常、アプリ全体のほとんどの場所に表示されます。UIAlertControllerが表示されたときにUIBarButtonItemがカスタムアピアランス属性を失う
しかし、ActionSheetスタイルのUIAlertControllerがこのボタンを使用してビューコントローラ上に表示されると、BarButtonはカスタムフォントの外観を失い、ボタン上で不思議な「ジャンプ」と誤ったフォントが表示されます。ここに見ることができます:http://giphy.com/gifs/puopiq9mPyI2Q/html5。私はこれはおそらく、我々はAppDelegateで、次のコードで、BarButtonの外観を設定する方法に関連していると仮定し
:
NSDictionary *btnAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor],NSForegroundColorAttributeName,
[AppearanceConstants mediumFontSize20], NSFontAttributeName,nil];
[[UIBarButtonItem appearance] setTitleTextAttributes:btnAttributes forState:UIControlStateNormal];
私の推測では、バーボタンがUIControlStateNormalではないということでしょうが、しかしそれはdoesnのとにかく、AlertControllerが表示されているときにBarButtonがどの状態にあるのかを知るために、とにかく、すべてのコントロール状態に対してタイトルテキスト属性を適切な値に設定しようとしていたのはどちらもうまくいきませんでした。
NavigationBars内のBarButtonItemsを持つ他のView Controllerにナビゲートすると、正しい外観になります。後で問題のある画面に戻ると、AlertControllerが再び表示されるまで正しい外観になります。
を助けるために
UIBarButtonItem
にカテゴリを作成しActionSheetを提示した後、スタイルをリセットコントローラまたは 'self.window.tintAdjustmentMode = UIViewTintAdjustmentModeNormal'をあなたのアプリケーションデリゲートに追加します。他の投稿では、これを解決策として提案しています。 –
提案していただきありがとうございます。問題を解決していないようです。これは実際にアクションシートに固有のものではなく、私はただ実現しました。私たちには、ビュー上に表示する別のビューコントローラがあり、同じ問題が発生しますが、背景をぼかすほど目立たないので、「ジャンプ」を見ることはできません。ただし、フォントスタイリングは削除されます。 –