114 Customizing the Appearance of Uikit Controls
-
Upload
shah-paril -
Category
Documents
-
view
2.284 -
download
3
Transcript of 114 Customizing the Appearance of Uikit Controls
These are confidential sessions—please refrain from streaming, blogging, or taking pictures
Session 114
Customizing the Appearanceof UIKit Controls
Chris ParkeriOS Frameworks Engineer
1
2
3
4
Tint color
5
Tint color
6
Tint color
7
8
Images
9
setBackgroundImage:forBarMetrics:
typedef enum { UIBarMetricsDefault, UIBarMetricsLandscapePhone,} UIBarMetrics;
10
titleTextAttributes:
leftBarButtonItems:rightBarButtonItems:
leftItemsSupplementBackButton
11
titleTextAttributes:
leftBarButtonItems:rightBarButtonItems:
leftItemsSupplementBackButton
12
titleTextAttributes:
leftBarButtonItems:rightBarButtonItems:
leftItemsSupplementBackButton
13
setBackgroundImage:forState:barMetrics:
setBackButtonBackgroundImage:forState:barMetrics:
14
setBackgroundImage:forState:barMetrics:
setBackButtonBackgroundImage:forState:barMetrics:
15
Customizing instancesDemo
Marian GoldeeniOS Frameworks Mountain Biker
16
Writing customization API is difficult
17
Using customization API is difficult
18
Consistent look
Easy
Support application features
19
20
[aSlider setMinimumTrackTintColor:[UIColor redColor]];
21
[[UISlider appearance] setMinimumTrackTintColor:[UIColor redColor]];
22
[[UISlider appearance] setMinimumTrackTintColor:[UIColor redColor]];
23
[[UISlider appearance] setMinimumTrackTintColor:[UIColor redColor]];
24
Appearance ProxyUIAppearance.h
@protocol UIAppearance <NSObject>
+ (id)appearance;...
@end
25
Appearance ProxyUIAppearance.h
@protocol UIAppearance <NSObject>
+ (id)appearance;...
@end
#define UI_APPEARANCE_SELECTOR
26
Appearance proxy basicsDemo
27
Zap
28
Zap
29
Appearance ProxyUIAppearance.h
@protocol UIAppearance <NSObject>
+ (id)appearance;+ (id)appearanceWhenContainedIn:(Class<UIAppearanceContainer>)containerClass, ...;
@end
30
Appearance ProxyUIAppearance.h
@protocol UIAppearance <NSObject>
+ (id)appearance;+ (id)appearanceWhenContainedIn:(Class<UIAppearanceContainer>)containerClass, ...;
@end
31
Containment
[[UIButton appearanceWhenContainedIn: [UINavigationController class], nil] setTitleColor:[UIColor redColor] forControlState:UIControlStateNormal];
32
Containment
[[UIButton appearanceWhenContainedIn: [UINavigationController class], nil] setTitleColor:[UIColor redColor] forControlState:UIControlStateNormal];
33
Zap
34
Zap
35
Containment
[[UIButton appearanceWhenContainedIn: [CustomViewController class], [UINavigationController class], nil] setTitleColor:[UIColor redColor] forControlState:UIControlStateNormal];
36
Zap
37
Zap
38
ContainmentComposition rules
The button’s appearance……when contained in a CustomViewController…when contained in a UINavigationController
[[UIButton appearanceWhenContainedIn: [CustomViewController class], [UINavigationController class], nil] setTitleColor:[UIColor redColor] forControlState:UIControlStateNormal];
39
ContainmentDemo
40
What is Happening?Rule application
• Just before -[UIView layoutSubviews] is called…■ Rules are evaluated■ Customizations are applied
•Updates are applied at the time the hierarchy is changed■ At the hierarchy change point■ Does not update in real time
41
Zap
42
Zap[ setTitleColor: [UIColor greenColor] forControlState: UIControlStateNormal];
43
Zap
44
Zap
45
[[UISlider appearance] setMinimumTrackTintColor:[UIColor redColor]];
46
Zap
47
Zap
48
49
Bill DudneyApplication Frameworks [email protected]
DocumentationiOS Dev Centerhttp://developer.apple.com/devcenter/ios/
Apple Developer Forumshttp://devforums.apple.com
More Information
50
51