229

アプリでカスタム要素を作成していて、新しい iOS のルック アンド フィールに合わせたいと考えています。iOS 7 では、非常に一般的な明るい青色が導入されました。これは、システム ボタン、セグメント化されたコントロールなど、いくつかの要素のデフォルトの色または色合いです。次に示すように、IB を使用して色を簡単に選択できるようになりました。

ここに画像の説明を入力

ただし、プログラムで色に簡単にアクセスする方法は見つかりませんでした。UIColorのドキュメントを確認しましたが、クラス自体に青色のシステム カラーのアクセサーがないようです。

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

4

15 に答える 15

256

self.view.tintColorビュー コントローラまたはサブクラスself.tintColorから使用します。UIView

于 2013-09-26T16:10:49.860 に答える
91

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];
于 2013-11-16T07:50:10.943 に答える
26

デフォルトのシステム色合いを取得する簡単な方法を次に示します。

+ (UIColor*)defaultSystemTintColor
{
   static UIColor* systemTintColor = nil;
   static dispatch_once_t onceToken;
   dispatch_once(&onceToken, ^{
      UIView* view = [[UIView alloc] init];
      systemTintColor = view.tintColor;
   });
   return systemTintColor;
}
于 2013-12-02T18:14:15.540 に答える
16

事前定義されたシステム カラーを使用したネイティブ拡張により、探しているものが得られます。

// System colors

extension UIColor {

   
    /* Some colors that are used by system elements and applications.
     * These return named colors whose values may vary between different contexts and releases.
     * Do not make assumptions about the color spaces or actual colors used.
     */
    
    ... 

    @available(iOS 7.0, *)
    open class var systemBlue: UIColor { get }
    ... 
}

直接使用できます:

myView.tintColor = .systemBlue
于 2018-06-21T09:01:35.950 に答える
14

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

static let DefaultButtonColor = UIButton(type: UIButtonType.System).titleColorForState(.Normal)!
于 2016-01-07T22:47:00.630 に答える
7

iOS 7 からは API があり、次の方法で色合いを取得 (および設定) できます。

self.view.tintColor

または、CGColor が必要な場合:

self.view.tintColor.CGColor
于 2014-08-04T16:24:45.560 に答える
6

多くの場合、必要なのは

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

または迅速な

self.tintColor
// or if in a ViewController
self.view.tintColor
于 2014-10-13T12:26:36.063 に答える
2

次の方法で 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];
于 2013-11-20T03:02:58.910 に答える