web-dev-qa-db-ja.com

iOS 7のデフォルトの青い色をプログラムで取得する方法を教えてください。

私は自分のアプリでカスタム要素を作成していて、新しいiOSのルックアンドフィールに合わせたいと思っています。 iOS 7では、システムボタン、セグメント化されたコントロールなどを含む、非常に一般的な明るい青の色、デフォルトの色またはいくつかの要素の色合いが導入されました。

enter image description here

しかし、プログラムで簡単に色にアクセスする方法はわかりませんでした。私は UIColorのドキュメント をチェックしました、そしてクラス自体に青いシステムカラーのためのアクセサーがないようです。

これが私の質問です。この色にはシンプルなアクセサがありますか。 [UIColor ?]またはそれに似たものそうでない場合、誰かがその色の正確なRGB値を知っていますか?

209
Joel H.

View Controllerからself.view.tintColorを、またはUIViewサブクラスからself.tintColorを使用してください。

240
Aaron Brager

それは[UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0]のようです。

screenshot showing Colors window

233
Greg

iOS 7のデフォルトの青色はR:0.0 G:122.0 B:255.0です

UIColor *ios7BlueColor = [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0];
90
tarum

UIButtonのドキュメントによると、

IOS v7.0では、UIViewのすべてのサブクラスは基本クラスからtintColorの動作を継承しています。詳細については、UIViewレベルでのtintColorの説明を参照してください。

デフォルト値を取得する前にtintColorを変更しないと仮定すると、次のようになります。

self.view.tintColor
46
Scott Carter

これは、デフォルトのシステムの色合いの色を取得する簡単な方法です。

+ (UIColor*)defaultSystemTintColor
{
   static UIColor* systemTintColor = nil;
   static dispatch_once_t onceToken;
   dispatch_once(&onceToken, ^{
      UIView* view = [[UIView alloc] init];
      systemTintColor = view.tintColor;
   });
   return systemTintColor;
}
26
Rick

高速4ウェイ:

extension UIColor {
  static let system = UIView().tintColor!
}
16
Dmitry Kozlov

16進カラーコード

#007AFF

このライブラリが必要です https://github.com/thii/SwiftHEXColors

ps。 iOS、Swift

15
Ego Slayer

このコードを使用して色を自動的に取得します。

static let DefaultButtonColor = UIButton(type: UIButtonType.System).titleColorForState(.Normal)!
14

UIWindow.tintColorメソッドはiOS8では私にとってはうまくいきませんでした(それはまだ黒だった)ので、私はこれをしなければなりませんでした:

let b = UIButton.buttonWithType(UIButtonType.System) as UIButton
var color = b.titleColorForState(.Normal)

これはUIBarButtonItemで見られる適切な青い色合いを与えました

10
cscott530

この拡張子はあなたにネイティブシステムの青い色を与えます。

extension UIColor {

    static var systemBlue: UIColor {
        return UIButton(type: .system).tintColor
    }

}

使用法:

myView.tintColor = .systemBlue

UPD:それを指摘してくれたDmitryKozlovに感謝します。

IOS 7からAPIがあり、あなたはティントカラーを取得(そして設定)することができます:

self.view.tintColor

あるいはCGColorが必要ならば:

self.view.tintColor.CGColor
7

多くの場合、必要なのはただ

[self tintColor] 
// or if in a ViewController
[self.view tintColor]

またはSwift用

self.tintColor
// or if in a ViewController
self.view.tintColor
6
Ali

色を設定しながら、あなたはこのように色を設定することができます

[UIColor colorWithRed:19/255.0 green:144/255.0 blue:255/255.0 alpha:1.0]
3
Anurag Soni

次の方法でUIColorにカテゴリを追加すると、必要に応じていつでもカテゴリを利用できるようになり、コード全体でその定義を変更することもできます。

@interface UIColor (iOS7Colors)

+ (instancetype)iOS7blueColor;

@end

@implementation UIColor (SpecialColors)

+ (instancetype)iOS7blueColor;
{
    return [UIColor colorWithRed:0.0f green:0.22f blue:122.0/255.0 alpha:1.0f];
}

コードにカテゴリをインポートしたら、次のようにして色を呼び出すことができます。

UIColor *myBlueColor = [UIColor iOSblueColor];
2
Renaud Boisjoly