2017-12-27 26 views
0

Viewsカラーをカスタマイズする方法について多くの記事を読んだことがありますが、iOS 11.x以前のナビゲーションバー、ステータスバー、タブバーなどの標準コントロールのシステムカラーの取得については何もしていません。クラスUIColorは3つのシステムカラーを持っていますが、かなり無駄です。たとえば、UINavigationBar.appearance()を呼び出すことはほとんど役に立ちません。なぜなら、アプリケーションのplistに何も定義されていない場合、おそらくデフォルトの淡いカラースキームに対して「クリア」な色を返すからです。だから、なぜ、他人が(WindowsとAndroidのために)システムカラーをプログラム的に取得する方法をAppleが提供していないのだろうか?誰かどこにそれらを見つけるためのアイデアはありますか?事前にTx。iOS 11.xのシステムカラー

+0

あなたはこれらの色をお探しですか? https://developer.apple.com/ios/human-interface-guidelines/visual-design/color/ – nathan

+0

システムは、すべての色を正しい色にするために、プログラムカラーではい、ただしRGB値ではなく名前で色付けします彼らがAppleによって変更された時 – Sergiob

答えて

1

iOSでは、これらの色にプログラムでアクセスする方法はありません。

代わりに、これらの色を自分のプロジェクトに追加するだけでも簡単です。将来のiOSバージョンで色が変わった場合(代わりに新しい色を使用したい場合)、アプリを更新する必要があります。

アプリはブランディングの目的で独自の色を定義するため、ほとんどの場合、これは問題ではありません。

enum SystemColor { 

    case red 
    case orange 
    case yellow 
    case green 
    case tealBlue 
    case blue 
    case purple 
    case pink 

    var uiColor: UIColor { 
     switch self { 
     case .red: 
      return UIColor(red: 255/255, green: 59/255, blue: 48/255, alpha: 1) 
     case .orange: 
      return UIColor(red: 255/255, green: 149/255, blue: 0/255, alpha: 1) 
     case .yellow: 
      return UIColor(red: 255/255, green: 204/255, blue: 0/255, alpha: 1) 
     case .green: 
      return UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1) 
     case .tealBlue: 
      return UIColor(red: 90/255, green: 200/255, blue: 250/255, alpha: 1) 
     case .blue: 
      return UIColor(red: 0/255, green: 122/255, blue: 255/255, alpha: 1) 
     case .purple: 
      return UIColor(red: 88/255, green: 86/255, blue: 214/255, alpha: 1) 
     case .pink: 
      return UIColor(red: 255/255, green: 45/255, blue: 85/255, alpha: 1) 
     } 
    } 

} 

使用例:

myView.backgroundColor = SystemColor.blue.uiColor 

ご希望の場合は、これらの色もそうのようなUIColorの拡張として定義することができます

extension UIColor { 
    static let systemBlue = UIColor(red: 0/255, green: 122/255, blue: 255/255, alpha: 1) 
    // etc 
} 

と使用方法は、次のようになります。

UIColor.systemBlue 

iOS system colors from the hig

Colors in the Human Interface Guidelines

+0

ありがとう@nathan私はその結果を得るためのいくつかの方法を知っていた。私のアプリはカスタムカラーを持っていません。システムの色は設計によって異なります。だから、あなたのソリューションは私のニーズを満たしていません。とにかくお時間をありがとうございます – Sergiob

+0

@Sergiob私が知っているあなたのニーズを満たすことができる解決法はありません。これは、iOS APIの現在の制限を使用してできる最善の方法です。 – nathan

関連する問題