Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images...

225
These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 214 Customizing Your App's Appearance for iOS 7 Jacob Xiao iOS Apps and Frameworks

Transcript of Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images...

Page 1: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

These are confidential sessions—please refrain from streaming, blogging, or taking pictures

Session 214

Customizing Your App's Appearance for iOS 7

Jacob XiaoiOS Apps and Frameworks

Page 2: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

What You Will Learn

•What’s changed•Advanced customization•Making custom controls

Page 3: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 4: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 5: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 6: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Theming

Background ImagesResizable Images

Retina Images

Control State

Text Attributes

Bar Metrics

UIAppearance

Alignment Insets

Separating Images

Page 7: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

What’s Changed

Page 8: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

Page 9: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

UIStatusBarStyleDefault

Page 10: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

UIStatusBarStyleDefault

UIStatusBarStyleLightContent

Page 11: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

UIStatusBarStyleDefault

UIStatusBarStyleLightContent

Page 12: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

Page 13: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

Page 14: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

Page 15: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

480 pt568 pt

320 pt 320 pt

Page 16: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

480 pt568 pt

320 pt 320 pt

Page 17: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

Page 18: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

Page 19: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

Page 20: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Status Bar

Page 21: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 22: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 23: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

window.tintColor = [UIColor redColor];

Page 24: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

Page 25: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

Page 26: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

@property(nonatomic,retain) UIColor *tintColor;

Page 27: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

@property(nonatomic,retain) UIColor *tintColor;

window.tintColor = [UIColor redColor];

Page 28: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Tint Color

Page 29: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Tint Color

bar.tintColor = [UIColor redColor];

Page 30: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Tint Color

Page 31: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Tint Color

bar.tintColor = [UIColor redColor];

Page 32: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Tint Color

bar.barTintColor = [UIColor yellowColor];

Page 33: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Tint Color

bar.tintColor = [UIColor redColor];bar.barTintColor = [UIColor yellowColor];

Page 34: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Tint Color

@property(nonatomic,retain) UIColor *barTintColor;

Bar Backgrounds

Page 35: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Backgrounds

Page 36: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Backgrounds

Page 37: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Backgrounds

44 pt

Page 38: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Backgrounds

44 pt

64 pt

Page 39: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Backgrounds

Page 40: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Backgrounds

Page 41: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Backgrounds

32 pt

Page 42: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Backgrounds

32 pt

52 pt

Page 43: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Backgrounds

Page 44: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Backgrounds

[bar setBackgroundImage:tallImage forBarPosition:UIBarPositionTopAttached barMetrics:UIBarMetricsDefault];

Page 45: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Backgrounds

[bar setBackgroundImage:tallImage forBarPosition:UIBarPositionTopAttached barMetrics:UIBarMetricsDefault];

[bar setBackgroundImage:image forBarPosition:UIBarPositionTop barMetrics:UIBarMetricsDefault];

Page 46: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Bar Backgrounds

[bar setBackgroundImage:tallImage forBarPosition:UIBarPositionTopAttached barMetrics:UIBarMetricsDefault];

[bar setBackgroundImage:image forBarPosition:UIBarPositionTop barMetrics:UIBarMetricsDefault];

[bar setBackgroundImage:image forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

Page 47: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

44 pt

64 pt

Bar Backgrounds

Page 48: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

44 pt

64 pt

Bar Backgrounds

@property(nonatomic,retain) UIImage *shadowImage;

Page 49: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Translucency

Page 50: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Translucency

Normal

Page 51: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Translucency

Normal

Bar Tint Color

Page 52: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Translucency

Normal

Bar Tint Color

Custom Background

Page 53: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Translucency

Page 54: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Translucency

Page 55: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Translucency

Page 56: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Translucency

UIViewController.h

Page 57: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Navigation Bar

Page 58: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Navigation Bar

Page 59: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Navigation Bar

@property(nonatomic,retain) UIImage *backIndicatorImage;

Page 60: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Navigation Bar

@property(nonatomic,retain) UIImage *backIndicatorImage;

Page 61: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Navigation Bar

@property(nonatomic,retain) UIImage *backIndicatorImage;

Page 62: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Navigation Bar

@property(nonatomic,retain) UIImage *backIndicatorImage;

Page 63: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Navigation Bar

@property(nonatomic,retain) UIImage *backIndicatorTransitionMaskImage;@property(nonatomic,retain) UIImage *backIndicatorImage;

Page 64: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Navigation Bar

@property(nonatomic,retain) UIImage *backIndicatorTransitionMaskImage;@property(nonatomic,retain) UIImage *backIndicatorImage;

Page 65: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Navigation Bar

@property(nonatomic,retain) UIImage *backIndicatorTransitionMaskImage;@property(nonatomic,retain) UIImage *backIndicatorImage;

Page 66: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tab Bar

Page 67: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tab Bar

@property(nonatomic) UIBarStyle barStyle;

Page 68: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tab Bar

@property(nonatomic) UIBarStyle barStyle;

UIBarStyleDefault

Page 69: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tab Bar

@property(nonatomic) UIBarStyle barStyle;

UIBarStyleDefault UIBarStyleBlack

Page 70: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tab Bar

Page 71: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tab Bar

Page 72: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tab Bar

@property(nonatomic,retain) UIImage *image;

Page 73: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tab Bar

@property(nonatomic,retain) UIImage *image;@property(nonatomic,retain) UIImage *selectedImage;

Page 74: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tab Bar

@property(nonatomic,retain) UIImage *image;@property(nonatomic,retain) UIImage *selectedImage;

Page 75: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Table View

Page 76: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Table View

Page 77: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Table View

Page 78: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Table View

Page 79: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Table View

@property(nonatomic,retain) UIView *selectedBackgroundView;

Page 80: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Buttons

Page 81: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Buttons

UIButtonTypeSystem

Page 82: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Buttons

UIButtonTypeRoundedRect

UIButtonTypeSystem

Page 83: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Buttons

UIButtonTypeSystem

Page 84: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Buttons

UIButtonTypeSystem

Page 85: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Buttons

pauseButton.selected = YES;

UIButtonTypeSystem

Page 86: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Buttons

UIButtonTypeSystem

Page 87: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Other Controls

Page 88: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Other Controls

Page 89: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Asset Catalog

Page 90: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Advanced Customization

Page 91: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

Page 92: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

window.tintColor = [UIColor redColor];

Page 93: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

Page 94: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

Page 95: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

Specific Inherited

Page 96: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

window.tintColor = [UIColor redColor];

Specific Inherited

Page 97: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

window.tintColor = [UIColor redColor];

Specific Inherited

Page 98: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

window.tintColor = [UIColor redColor];

Specific Inherited

Page 99: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

window.tintColor = [UIColor redColor];

Specific Inherited

Page 100: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

window.tintColor = [UIColor redColor];

window.tintColor = nil;

Specific Inherited

Page 101: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

window.tintColor = [UIColor redColor];

window.tintColor = nil;

Specific Inherited

Page 102: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

window.tintColor = [UIColor redColor];

window.tintColor = nil;

Specific Inherited

Page 103: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

window.tintColor = [UIColor redColor];

window.tintColor = nil;

Specific Inherited

Page 104: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

Specific Inherited

Page 105: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

view.tintColor = [UIColor greenColor];

Specific Inherited

Page 106: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

view.tintColor = [UIColor greenColor];

Specific Inherited

Page 107: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

view.tintColor = [UIColor greenColor];

window.tintColor = [UIColor redColor];

Specific Inherited

Page 108: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

view.tintColor = [UIColor greenColor];

window.tintColor = [UIColor redColor];

Specific Inherited

Page 109: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 110: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

typedef NS_ENUM(NSInteger, UIViewTintAdjustmentMode) { UIViewTintAdjustmentModeAutomatic, UIViewTintAdjustmentModeNormal, UIViewTintAdjustmentModeDimmed,};

Page 111: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

Page 112: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

NormalNormal

Normal

Tint Adjustment Mode

@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode;

NormalNormal

Normal

Page 113: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

NormalNormal

Normal

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode;

NormalNormal

NormalDimmed

Page 114: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

NormalNormal

Normal

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode;

NormalNormal

NormalDimmed

Page 115: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

NormalNormal

NormalDimmed

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode;

NormalDimmedNormalDimmed

NormalDimmed

Page 116: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

NormalNormal

NormalDimmed

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode;

NormalDimmedNormalDimmed

NormalDimmed

Page 117: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

NormalNormal

NormalDimmed

Dimmed Dimmed

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode;

NormalDimmedNormalDimmed

NormalDimmed

Page 118: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

Page 119: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

Page 120: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

Normal

Normal

NormalNormal

NormalNormal

Page 121: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

Normal

Normal

NormalNormal

NormalNormal

Auto

Auto Auto Auto

Auto Auto

Specific Inherited

Page 122: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

Normal

Normal

NormalNormal

NormalNormal

AutoDimmed

Auto Auto Auto

Auto Auto

Specific Inherited

Page 123: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

Normal

Normal

NormalNormal

NormalNormal

DimmedAutoDimmed

Auto Auto Auto

Auto Auto

Specific Inherited

Page 124: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

Normal

Normal

NormalNormal

NormalNormal

DimmedAutoDimmed

Auto Auto Auto

Auto Auto

Specific Inherited

Page 125: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

Normal

Normal

NormalNormal

NormalNormal

Dimmed

DimmedDimmed Dimmed

AutoDimmed

Auto Auto Auto

Auto Auto

Specific Inherited

Page 126: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

Normal

Normal

NormalNormal

NormalNormal

Dimmed

DimmedDimmed Dimmed

AutoDimmed

Auto Auto Auto

Auto Auto

Specific Inherited

Page 127: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

Normal

Normal

NormalNormal

NormalNormal

Dimmed

DimmedDimmed Dimmed

Dimmed Dimmed

AutoDimmed

Auto Auto Auto

Auto Auto

Specific Inherited

Page 128: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

Normal

Normal

NormalNormal

NormalNormal

Dimmed

DimmedDimmed Dimmed

Dimmed Dimmed

AutoDimmed

Auto Auto Auto

Auto Auto

Normal

view.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;

Specific Inherited

Page 129: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

Normal

Normal

NormalNormal

NormalNormal

Dimmed

DimmedDimmed Dimmed

Dimmed Dimmed

AutoDimmed

Auto Auto Auto

Auto Auto

Normal Normal

view.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;

Specific Inherited

Page 130: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

Normal

Normal

NormalNormal

NormalNormal

Dimmed

DimmedDimmed Dimmed

Dimmed Dimmed

AutoDimmed

Auto Auto Auto

Auto Auto

Normal Normal

view.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;

Specific Inherited

Page 131: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

Normal

Normal

NormalNormal

NormalNormal

Dimmed

DimmedDimmed Dimmed

Dimmed Dimmed

AutoDimmed

Auto Auto Auto

Auto Auto

Normal Normal

Normal Normal

view.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;

Specific Inherited

Page 132: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

Normal

Normal

NormalNormal

NormalNormal

Auto

Auto Auto Auto

Auto Auto

Specific Inherited

Page 133: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

Normal

Normal

NormalNormal

NormalNormal

AutoDimmed

Auto Auto Auto

Auto Auto

Specific Inherited

Page 134: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

Normal

Normal

NormalNormal

NormalNormal

Dimmed

DimmedDimmed Dimmed

Dimmed Dimmed

AutoDimmed

Auto Auto Auto

Auto Auto

Specific Inherited

Page 135: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

window.tintAdjustmentMode = UIViewTintAdjustmentModeAutomatic;

Normal

Normal

NormalNormal

NormalNormal

Dimmed

DimmedDimmed Dimmed

Dimmed Dimmed

Auto

Auto Auto Auto

Auto Auto

Specific Inherited

Page 136: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

window.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

window.tintAdjustmentMode = UIViewTintAdjustmentModeAutomatic;

Normal

Normal

NormalNormal

NormalNormal

Auto

Auto Auto Auto

Auto Auto

Specific Inherited

Page 137: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

Page 138: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

Page 139: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Adjustment Mode

Page 140: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 141: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 142: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Template Images

Page 143: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Template Images

Page 144: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Template Images

Page 145: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Template Images

Page 146: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering ModeUIImageRenderingMode

Page 147: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering ModeUIImageRenderingMode

Automatic AlwaysOriginal AlwaysTemplate

UIImageView

UIBarButtonItem

Page 148: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering ModeUIImageRenderingMode

Automatic AlwaysOriginal AlwaysTemplate

UIImageView

UIBarButtonItem

Page 149: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering ModeUIImageRenderingMode

Automatic AlwaysOriginal AlwaysTemplate

UIImageView

UIBarButtonItem

Page 150: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering ModeUIImageRenderingMode

Automatic AlwaysOriginal AlwaysTemplate

UIImageView

UIBarButtonItem

Page 151: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering Mode

UIImageRenderingModeAutomatic

image = [UIImage imageNamed:@”favorite”];

Page 152: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering Mode

UIImageRenderingModeAutomatic

image = [UIImage imageNamed:@”favorite”];

item = [[UIBarButtonItem alloc] initWithImage:image ...];

Page 153: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering Mode

UIImageRenderingModeAlwaysOriginal

image = [UIImage imageNamed:@”favorite”];image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

item = [[UIBarButtonItem alloc] initWithImage:image ...];

Page 154: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering Mode

Page 155: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering Mode

- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage;

Page 156: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering Mode

- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage;

Page 157: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering Mode

- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage;

UIImageRenderingModeAlwaysOriginal

Page 158: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering Mode

- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage;

@property(nonatomic,retain) UIImage *image;@property(nonatomic,retain) UIImage *selectedImage;

UIImageRenderingModeAlwaysOriginal

Page 159: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering Mode

image = [UIImage imageNamed:@”x”];

Page 160: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering Mode

image = [UIImage imageNamed:@”x”];

backgroundImage = [UIImage imageNamed:@”segmentedBackground”];

Page 161: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering Mode

image = [UIImage imageNamed:@”x”];image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

backgroundImage = [UIImage imageNamed:@”segmentedBackground”];

Page 162: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rendering Mode

Page 163: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

cell.imageView.image = image;

Rendering Mode

image = [UIImage imageNamed:@”victory”];

Page 164: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

cell.imageView.image = image;

Rendering Mode

image = [UIImage imageNamed:@”victory”];image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

Page 165: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

Page 166: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

- (UIStatusBarStyle)preferredStatusBarStyle;- (BOOL)prefersStatusBarHidden;

Page 167: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

- (UIStatusBarStyle)preferredStatusBarStyle;- (BOOL)prefersStatusBarHidden;

[self setNeedsStatusBarAppearanceUpdate];

Page 168: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

Page 169: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

- (UIViewController *)childViewControllerForStatusBarStyle;- (UIViewController *)childViewControllerForStatusBarHidden;

Page 170: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

- (UIViewController *)childViewControllerForStatusBarStyle;- (UIViewController *)childViewControllerForStatusBarHidden;

[self setNeedsStatusBarAppearanceUpdate];

Page 171: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

- (UIViewController *)childViewControllerForStatusBarStyle;- (UIViewController *)childViewControllerForStatusBarHidden;

[self setNeedsStatusBarAppearanceUpdate];

Page 172: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

Page 173: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

Page 174: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

Page 175: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

- (UIStatusBarStyle)preferredStatusBarStyle{ return ([self isOver] ? UIStatusBarStyleLightContent : UIStatusBarStyleDefault);}

Page 176: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

- (UIStatusBarStyle)preferredStatusBarStyle{ return ([self isOver] ? UIStatusBarStyleLightContent : UIStatusBarStyleDefault);}

[self setNeedsStatusBarAppearanceUpdate];

Page 177: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

- (UIStatusBarStyle)preferredStatusBarStyle{ return ([self isOver] ? UIStatusBarStyleLightContent : UIStatusBarStyleDefault);}

[self setNeedsStatusBarAppearanceUpdate];

[UIView animateWithDuration:0.5 animations:^{ // Update necessary state [self updateBackgroundColor];

}];

Page 178: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

View Controller Based Status Bar

Page 179: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Making Custom Controls

Page 180: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 181: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 182: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rating Control

Page 183: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Rating Control

Page 184: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

UIImageView

UILabel keypad

Page 185: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

UIImageView

UILabel keypad

Page 186: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

UIButtonUIButton

Page 187: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

UIButtonUIButton UIImageView

Page 188: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 189: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 190: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

UIImageView

Page 191: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

UIButton

UIImageView

Page 192: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

UIButton

UIImageView

button.selected = YES;

Page 193: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Customizing UIButton

UIButtonTypeCustom

Page 194: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

- (CGRect)backgroundRectForBounds:(CGRect)bounds;- (CGRect)titleRectForContentRect:(CGRect)contentRect;- (CGRect)imageRectForContentRect:(CGRect)contentRect;

Customizing UIButton

UIButtonTypeCustom

Page 195: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Dynamic Images

Page 196: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);// DrawingUIImage *image = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();

Dynamic Images

Page 197: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);// DrawingUIImage *image = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();imageView.image = image;

Dynamic Images

Page 198: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

imageView.image = image;

Dynamic Images

Page 199: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Dynamic Images

image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

imageView.image = image;

Page 200: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Dynamic Images

image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

imageView.image = image;

Page 201: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Dynamic Images

image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

imageView.image = image;

image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(...)];

Page 202: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Sending Actions

@interface TTTRatingControl : UIControl

Page 203: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Sending Actions

- (void)touchButton:(UIButton *)button{ self.rating = button.tag; [self sendActionsForControlEvents:UIControlEventValueChanged];}

@interface TTTRatingControl : UIControl

Page 204: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Sending Actions

- (void)touchButton:(UIButton *)button{ self.rating = button.tag; [self sendActionsForControlEvents:UIControlEventValueChanged];}

@interface TTTRatingControl : UIControl

[ratingControl addTarget:self action:@selector(changeRating:) forControlEvents:UIControlEventValueChanged];

Page 205: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Count View

Page 206: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Count View

Page 207: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

- (void)drawRect:(CGRect)rect{ [[self tintColor] set]; // Drawing}

Page 208: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

Page 209: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

- (void)tintColorDidChange;

Page 210: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

- (void)tintColorDidChange;

Page 211: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

Normal

Normal

NormalNormal

NormalNormal

Auto

Auto Auto Auto

Auto Auto

Normal

- (void)tintColorDidChange;

Page 212: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Tint Color

Normal

Normal

NormalNormal

NormalNormal

Dimmed

DimmedDimmed Dimmed

Dimmed Dimmed

AutoDimmed

Auto Auto Auto

Auto Auto

Normal

- (void)tintColorDidChange;

Page 213: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

- (void)tintColorDidChange{ [super tintColorDidChange]; [self setNeedsDisplayInRect:[self rectForCount:self.count]];}

Page 214: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 215: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance
Page 216: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

- (void)tintColorDidChange{ [super tintColorDidChange]; self.detailTextLabel.textColor = self.tintColor;}

Page 217: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Accessibility

Page 218: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Accessibility

- (BOOL)isAccessibilityElement{ return NO;}

Page 219: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Accessibility

- (BOOL)isAccessibilityElement{ return NO;}

[button setAccessibilityLabel:[NSString stringWithFormat: NSLocalizedString(@"%d stars", @"%d stars"), rating + 1]];

Page 220: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Accessibility

- (BOOL)isAccessibilityElement{ return YES;}

Page 221: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Accessibility

- (BOOL)isAccessibilityElement{ return YES;}- (UIAccessibilityTraits)accessibilityTraits{ return UIAccessibilityTraitImage;}

Page 222: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Accessibility

- (BOOL)isAccessibilityElement{ return YES;}- (UIAccessibilityTraits)accessibilityTraits{ return UIAccessibilityTraitImage;}- (NSString *)accessibilityLabel{ return [NSString stringWithFormat:@"%d", self.count];}

Page 223: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Demo

Page 224: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance

Summary

•What’s changed•Advanced customization•Making custom controls

Page 225: Customizing Your App's Appearance for iOS 7 · •Making custom controls. Theming Background Images Resizable Images Retina Images Control State Text Attributes Bar Metrics UIAppearance