2017-07-17 12 views
6

スウィフト4にアップデートした後、私は、コンパイラエラーを取得しています:ここでUIAppearanceスウィフト4

Static member 'appearance' cannot be used on protocol metatype 'UIAppearance.Protocol'

は私のカスタムタブバーコントローラのサブクラスの私viewWillAppear方法ですが、私はアイテムのテキストのフォントを設定しています。

これを修正する際に問題が発生しました。ご指摘いただきありがとうございます。ありがとうございます!

+0

そのコードは何をすべきですか?通常、外観は具体的なUIクラスに設定されます。 'UIBarItem.appearance()。setTitleTextAttributes ... ' –

+0

私は質問に文脈を提供します。これはカスタムタブバーコントローラクラスです。バーアイテムのフォントを変更しています。 –

+0

あなたは 'UIAppearance'から直接ではなく、UIクラスから呼び出す必要があります。 – dimpiax

答えて

7

右 - 現在のSwift 4変換ツール(Xcode 9 Beta 4以降)は少し疎遠になります。

UIAppearance変換コードを元に戻して個々の属性を更新することで、問題を迅速に解決できました。

例えば、スウィフト3で私が持っていた:、私はハーフ戻ることによってエラーを黙らせることができた

UIAppearance.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.white], for: .selected) 

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.white], for: .selected) 

Xcodeはそれを変更することによって、私を「助け」 〜へ:

UITabBarItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.white], for: .selected) 
+0

同じです。たとえば、UITabBarItem、UIImageViewなどの代わりに、タイプをUIAppearanceに変更しています。 – Womble

関連する問題