Joel H.
Joel H.

Reputation: 2784

How can I get the iOS 7 default blue color programmatically?

I'm creating custom elements in my app and want to match the look and feel of the new iOS. iOS 7 introduced to us a very common lighter blue color, the default color or tint for several elements, including the system button, segmented control, etc. They've made it easy to select the color using IB, as seen here:

enter image description here

However, I haven't found how to easily access the color programmatically. I checked out the UIColor documentation, and there doesn't seem to be any accessor for the blue system color in the class itself.

Here's my question: does a simple accessor exist for this color? [UIColor ?] or something like it? If not, does someone know the exact RGB values for that color?

Upvotes: 229

Views: 155453

Answers (15)

Stanislau Baranouski
Stanislau Baranouski

Reputation: 1451

Native extension with predefined system colors gives what you're looking for:

// 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 }
    ... 
}

You can use it directly:

myView.tintColor = .systemBlue

Upvotes: 16

Ely
Ely

Reputation: 9121

Please don't mess with view.tintColor or extensions, but simply use this:

UIColor.systemBlue

Upvotes: 4

Dmitry Kozlov
Dmitry Kozlov

Reputation: 1175

swift 4 way:

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

Upvotes: 19

Renaud Boisjoly
Renaud Boisjoly

Reputation: 169

Adding a category to UIColor the following way will make it available to you anytime you need it or even change its definition accross your code:

@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];
}

Once you import the Category in your code you can call the color by using:

UIColor *myBlueColor = [UIColor iOSblueColor];

Upvotes: 2

Ego Slayer
Ego Slayer

Reputation: 2067

Hex Color code

#007AFF

and you need this libary https://github.com/thii/SwiftHEXColors

ps. iOS, Swift

Upvotes: 22

Lukasz Czerwinski
Lukasz Czerwinski

Reputation: 15432

Get the color automatically by using this code:

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

Upvotes: 14

Aaron Brager
Aaron Brager

Reputation: 66234

Use self.view.tintColor from a view controller, or self.tintColor from a UIView subclass.

Upvotes: 257

Ali
Ali

Reputation: 19672

In many cases what you need is just

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

or for swift

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

Upvotes: 6

cscott530
cscott530

Reputation: 1708

The UIWindow.tintColor method wasn't working for me in iOS8 (it was still black), so I had to do this:

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

This gave the proper blue tint seen in a UIBarButtonItem

Upvotes: 10

Scott Carter
Scott Carter

Reputation: 1254

According to the documentation for UIButton:

In iOS v7.0, all subclasses of UIView derive their behavior for tintColor from the base class. See the discussion of tintColor at the UIView level for more information.

Assuming you don't change the tintColor before grabbing the default value, you can use:

self.view.tintColor

Upvotes: 52

Codecraft Studio
Codecraft Studio

Reputation: 93

From iOS 7 there is an API and you can get (and set) the tint color with:

self.view.tintColor

Or if you need the CGColor:

self.view.tintColor.CGColor

Upvotes: 7

Rick
Rick

Reputation: 877

Here is a simple method to get the default system tint color:

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

Upvotes: 26

tarum
tarum

Reputation: 945

iOS 7 default blue color is 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];

Upvotes: 92

Anurag Soni
Anurag Soni

Reputation: 1077

while setting the color you can set color like this

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

Upvotes: 3

Greg
Greg

Reputation: 33650

It appears to be [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0].

screenshot showing Colors window

Upvotes: 233

Related Questions