Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
UISS Blitz Talk
Robert Wijas
March 04, 2013
Programming
0
63
UISS Blitz Talk
Blitz Talk about UISS library from NSConference 2013.
Robert Wijas
March 04, 2013
Tweet
Share
More Decks by Robert Wijas
See All by Robert Wijas
UISS
robertwijas
0
63
The Lean Startup
robertwijas
0
95
Pomodoro Blitz Talk
robertwijas
2
100
Pomodoro
robertwijas
0
90
Other Decks in Programming
See All in Programming
ECテックカンファレンス2023
kspace
1
340
あなたと 「|」 したい・・・
track3jyo
PRO
2
1.1k
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
42k
Qiita Night PHP 2023
fuwasegu
0
11k
Excelの助けを借りて楽にシナリオを作ろう
rpa_niiyama
0
300
domain層のモジュール化 / MoT TechTalk #15
mot_techtalk
0
110
2023年にクル(かもしれない)通信ミドルウェア技術(仮)
s_hosoai
0
200
Swift Expression Macros: a practical introduction
kishikawakatsumi
2
720
tidy_rpart
bk_18
0
590
Micro Frontends with Module Federation @MicroFrontend Summit 2023
manfredsteyer
PRO
0
550
Writing Greener Java Applications
hollycummins
0
340
How to Fight Production Incidents?
asatarin
0
200
Featured
See All Featured
Navigating Team Friction
lara
177
12k
Build your cross-platform service in a week with App Engine
jlugia
221
17k
Robots, Beer and Maslow
schacon
154
7.3k
Clear Off the Table
cherdarchuk
79
290k
Building a Modern Day E-commerce SEO Strategy
aleyda
6
4.5k
Visualization
eitanlees
128
12k
A Modern Web Designer's Workflow
chriscoyier
689
180k
Music & Morning Musume
bryan
37
4.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
349
27k
Put a Button on it: Removing Barriers to Going Fast.
kastner
56
2.5k
The Web Native Designer (August 2011)
paulrobertlloyd
76
2.2k
What's new in Ruby 2.0
geeforr
336
30k
Transcript
UIAppearance on Steroids UISS Robert Wijas
Quick introduction UIAppearance
@protocol UIAppearance <NSObject> ! + (id)appearance; ! + (id)appearanceWhenContainedIn:(Class <UIAppearanceContainer>)ContainerClass,
... NS_REQUIRES_NIL_TERMINATION; ! @end ! @protocol UIAppearanceContainer <NSObject> @end #define UI_APPEARANCE_SELECTOR ! - (void)setProperty:(PropertyType)property forAxis1:(IntegerType)axis1 axisN:(IntegerType)axisN; ! - (PropertyType)propertyForAxis1:(IntegerType)axis1 axisN:(IntegerType)axisN; Protocols Properties
[[UIButton appearance] setTitleColor:[[UIColor whiteColor] colorWithAlphaComponent:0.800] forState:UIControlStateNormal]; [[UIButton appearance] setTitleColor:[UIColor whiteColor]
forState:UIControlStateHighlighted]; [[UIButton appearance] setBackgroundImage:[[UIImage imageNamed:@"button-background-normal"] resizableImageWithCapInsets:UIEdgeInsetsMake(0.0, 10.0, 0.0, 10.0)] forState:UIControlStateNormal]; [[UIButton appearance] setBackgroundImage:[[UIImage imageNamed:@"button-background-highlighted"] resizableImageWithCapInsets:UIEdgeInsetsMake(0.0, 10.0, 0.0, 10.0)] forState:UIControlStateHighlighted]; [[UILabel appearanceWhenContainedIn:[UIButton class], nil] setFont:[UIFont fontWithName:@"Copperplate-Bold" size:18.0]]; [[UIButton appearance] setTitleEdgeInsets:UIEdgeInsetsMake(1.0, 0.0, 0.0, 0.0)];
UISS JSON Syntax
UISS JSON Syntax "UIButton":{ "titleColor:normal":["white", 0.8], "titleColor:highlighted":"white", ! "backgroundImage:normal": ["button-background-normal",
[0,10,0,10]], "backgroundImage:highlighted": ["button-background-highlighted", [0,10,0,10]], ! "titleEdgeInsets": [1,0,0,0], ! "UILabel":{ "font":["Copperplate-Bold", 18] } }
"UIButton":{ "titleColor:normal":["white", 0.8], "titleColor:highlighted":"white", ! "backgroundImage:normal": ["button-background-normal", [0,10,0,10]], "backgroundImage:highlighted": ["button-background-highlighted",
[0,10,0,10]], ! "titleEdgeInsets": [1,0,0,0], ! "UILabel":{ "font":["Copperplate-Bold", 18] } } UIAppearance objects and containment
"UIButton":{ "titleColor:normal":["white", 0.8], "titleColor:highlighted":"white", ! "backgroundImage:normal": ["button-background-normal", [0,10,0,10]], "backgroundImage:highlighted": ["button-background-highlighted",
[0,10,0,10]], ! "titleEdgeInsets": [1,0,0,0], ! "UILabel":{ "font":["Copperplate-Bold", 18] } } Properties
"UIButton":{ "titleColor:normal":["white", 0.8], "titleColor:highlighted":"white", ! "backgroundImage:normal": ["button-background-normal", [0,10,0,10]], "backgroundImage:highlighted": ["button-background-highlighted",
[0,10,0,10]], ! "titleEdgeInsets": [1,0,0,0], ! "UILabel":{ "font":["Copperplate-Bold", 18] } } Axis parameters
"clear" [UIColor clearColor] ! ["#ffffff", 0.5] [UIColor colorWithRed:255.0f green:255.0f blue:255.0f
alpha:0.5f] ! [0, 255, 255, 0.5] [UIColor colorWithRed:0.0f green:255.0f blue:255.0f alpha:0.5f] Colors
14 [UIFont systemFontOfSize:14.0f] ! ["bold", 14] [UIFont boldSystemFontOfSize:14.0f] ! ["Georgia-Italic",
12] [UIFont fontWithName:@"Georgia-Italic" size:12.0f] Fonts
"imageName" [UIImage imageNamed:@"imageName"] ! ["imageName", 1, 2, 3, 4] [[UIImage
imageNamed:@"imageName"] resizableImageWithCapInsets:UIEdgeInsetsMake(1, 2, 3, 4)] Images
"UINavigationBar":{ "Phone":{ "tintColor":"gray" }, "Pad":{ "tintColor":"lightGray" } } UI Idiom
Branches
"Variables":{ "tint":"blue", “toolbar”:{ "tintColor": "$tint" } }, "UINavigationBar":{ "tintColor": "$tint"
}, "UITabBar":{ "tintColor": "$tint" }, "UIToolbar":”$toolbar” Variables
"UISSDemoViewController":{ "-UIButton":{ "titleColor:normal":["white", 0.8], "titleColor:highlighted":"white" } } Comments
Simple Setup
one line of code Simple Setup
Simple Setup [UISS configureWithDefaultJSONFile]; uiss.json
Status Bar
Status Bar self.uiss = [UISS configureWithDefaultJSONFile]; self.uiss.statusWindowEnabled = YES;
None
None
Release configuration ?
Release configuration Generated Code
None
How to make it really cool?
How to make it really cool? Live updates
None
None
Remote Style [UISS configureWithDefaultJSONFile]
Remote Style [UISS configureWithURL:[NSURL URLWithString:@"http://localhost/uiss.json"]]
None
Custom Views UIAppearance
UISS Architecture Goals
lightweight UISS Architecture Goals
lightweight UISS Architecture Goals minimal dependency
lightweight UISS Architecture Goals powered by UIAppearance minimal dependency
http://github.com/robertwijas/UISS CocoaPods
None
robertwijas
None