Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
UIAppearanceを通して カスタムViewクラスを弄る
Search
ninjinkun
February 12, 2014
Technology
2k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
UIAppearanceを通して カスタムViewクラスを弄る
ninjinkun
February 12, 2014
More Decks by ninjinkun
See All by ninjinkun
買収から2ヶ月でシステム統合した話
ninjinkun
0
180
Designer's and Engineer's Thinking Styles
ninjinkun
0
330
Launchable Webinar テストを効率化して生産性を上げる方法
ninjinkun
2
620
ディープリンクの 設計と実装 - iOSDC2017
ninjinkun
18
11k
スマートフォンアプリ開発における共創的な開発チーム
ninjinkun
61
19k
ReSwiftでアプリの状態管理 / Reactive Swift Meetup
ninjinkun
9
17k
フリルのアプリ開発今昔物語
ninjinkun
3
2.3k
プロトタイピング合宿によるデザインリニューアル
ninjinkun
1
3.2k
デザイナーが仕事をしやすいアプリエンジニアを考える
ninjinkun
4
760
Other Decks in Technology
See All in Technology
HacobuにおけるFDEとは/登壇資料(戸井田 裕貴)
hacobu
PRO
1
160
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
130
Azure Copilot Resiliency Agentをいろいろ試してみる
tomokusaba
0
130
メルカリにおけるAI時代の高速プロトタイピング基盤「Arca」
ryotarai
17
13k
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
310
AIエージェントの一手は 誰も見ていない - Falco拡張OSS「Prempti」とeBPFで サーバーレス実行基盤を二層防御する
keitah
1
630
【ゲームメーカーズスクランブル2026】『Shadowverse: Worlds Beyond』UIとアニメーションで実現する最高のユーザー体験を叶えるプロトタイピング
cygames
PRO
1
690
IR Today: Theory, Practice, and Agents
dtunkelang
0
210
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
1
250
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
170
作って終わりじゃないサーバーレス 〜9年運用する大規模EC物流API基盤の設計・運用のリアル〜
zozotech
PRO
0
580
3人で1000GPU超を統合運用する?マルチクラウド&オンプレを跨ぐ、構築と運用のリアル!
kazukun0716
2
680
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.8k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Between Models and Reality
mayunak
4
470
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How to build a perfect <img>
jonoalderson
1
6k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
270
Transcript
6*"QQFBSBODFΛ௨ͯ͠ ΧελϜ7JFXΫϥεΛ࿔Δ ninjinkun
ࠓ͓͍͑ͨ͜͠ͱ w ΧελϜ7JFXΫϥεΛ࡞Δͷʹ6*"QQFBSBODF͕ศར
6*"QQFBSBODFͱ w 6*"QQFBSBODFΛ࣮͍ͯ͠ΔΦϒδΣΫτͷσϑΥ ϧτϓϩύςΟΛมߋͰ͖ΔΈ w 6*7JFX6*"QQFBSBODFΛ࣮͍ͯ͠Δ w ࣗͰఆٛͨ͠ϓϩύςΟมߋͰ͖Δ
ϘλϯΛ࡞Δ w ઢ͖ͷϘλϯΛ͍͍ͨ w ৭ͷόϦΤʔγϣϯ͕͋Δ ྫ͑͜ΜͳγνϡΤʔγϣϯ
ϘλϯΛ࡞Δ w ը૾Ͱ͕ΜΔ w #VUUPO#VJMEFSΛͭ͘Δ w YJC TUPSZCPBSEͰ͑ͳ͍ w ϕʔεΫϥεΛ࡞ͬͯࢠΫϥεͰΦʔόʔϥΠυ͢Δ
w ϕʔεΫϥεΛ࡞ͬͯࢠΫϥεΛ6*"QQFBSBODFͰૢ ࡞͢Δ ߟ͑ΒΕΔํ๏
ϘλϯΛ࡞Δ w ͖ϘλϯͷϕʔεΫϥεΛ࡞Δ ϕʔεΫϥεΛ࡞ͬͯࢠΫϥεΛ6*"QQFBSBODFͰૢ࡞͢Δ @interface NJKBaseButton : UIButton ! @property
(nonatomic) UIColor *borderColor UI_APPEARANCE_SELECTOR; @property (nonatomic) CGFloat borderWidth UI_APPEARANCE_SELECTOR; @property (nonatomic) CGFloat cornerRadius UI_APPEARANCE_SELECTOR; ! @end
@implementation NJKBaseButton ! - (id)initWithFrame:(CGRect)frame { … } ! -
(id)initWithCoder:(NSCoder *)aDecoder { … } ! - (void)setupViews { self.layer.masksToBounds = YES; ! // avoid storybord overriding UIColor *color = [[[self class] appearance] titleColorForState:UIControlStateNormal]; if (color) { [self setTitleColor:color forState:UIControlStateNormal]; } } ! - (void)setBorderColor:(UIColor *)borderColor { _borderColor = borderColor; self.layer.borderColor = borderColor.CGColor; } ! - (void)setBorderWidth:(CGFloat)borderWidth { _borderWidth = borderWidth; self.layer.borderWidth = borderWidth; } ! - (void)setCornerRadius:(CGFloat)cornerRadius { _cornerRadius = cornerRadius; self.layer.cornerRadius = cornerRadius; } ! @end
ϘλϯΛ࡞Δ w ϕʔεΫϥεΛܧঝͯ͠৭͖ͭϘλϯͷΫϥεΛ࡞Δ w ΫϥεΛ࡞Δ͚ͩͰ࣮ۭ ϕʔεΫϥεΛ࡞ͬͯࢠΫϥεΛ6*"QQFBSBODFͰૢ࡞͢Δ @interface NJKBlueButton : NJKBaseButton
@end ! @interface NJKBlueLineButton : NJKBaseButton @end ! @interface NJKGreenButton : NJKBaseButton @end ! ! @implementation NJKBlueButton @end ! @implementation NJKBlueLineButton @end ! @implementation NJKGreenButton @end
ϘλϯΛ࡞Δ w ৭ͷఆٛ6*"QQFBSBODFΛ௨ͯ͠ผͷίʔυͰࢦఆ ͢Δ ϕʔεΫϥεΛ࡞ͬͯࢠΫϥεΛ6*"QQFBSBODFͰૢ࡞͢Δ @implementation NJKTheme ! + (void)initialize
{ [[NJKBaseButton appearance] setCornerRadius:4.0]; ! ! [[NJKBlueButton appearance] setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; ! ! [[NJKBlueLineButton appearance] setBorderWidth:1.0]; [[NJKBlueLineButton appearance] setTitleColor:[UIColor blueColor] forState:UIControlStateNormal]; [[NJKBlueLineButton appearance] setBorderColor:[UIColor blueColor]]; } ! @end
@implementation NJKTheme ! + (void)initialize { ! [[NJKBaseButton appearance] setCornerRadius:4.0];
! ! [[NJKBlueButton appearance] setTitleColor:[UIColor colorWithString:@"#ffffff"] forState:UIControlStateNormal]; [[NJKBlueButton appearance] setBackgroundImage:[UIImage imageWithColor:[UIColor colorWithString:@"#3498DB"]] forState:UIControlStateNormal]; [[NJKBlueButton appearance] setBackgroundImage:[UIImage imageWithColor:[UIColor colorWithString:@"#2980B9"]] forState:UIControlStateHighlighted]; ! ! [[NJKBlueLineButton appearance] setBorderWidth:1.0]; [[NJKBlueLineButton appearance] setTitleColor:[UIColor colorWithString:@"#3498DB"] forState:UIControlStateNormal]; [[NJKBlueLineButton appearance] setTitleColor:[UIColor colorWithString:@"#ffffff"] forState:UIControlStateHighlighted]; [[NJKBlueLineButton appearance] setBorderColor:[UIColor colorWithString:@"#3498DB"]]; [[NJKBlueLineButton appearance] setBackgroundImage:[UIImage imageWithColor:[UIColor colorWithString:@"#3498DB"]] forState:UIControlStateHighlighted]; ! } ! @end
ϝϦοτ w ࣮ͱςʔϚ͕Ͱ͖Δ w Ϙλϯ࣮Ϋϥε w ςʔϚΫϥε w )5.-$44ͷؔ w
1JYBUF /6* /JNCVT
'"2 w ଟஈܧঝʹͳΔ͚Ͳʜ w ΦʔόʔϥΠυͯ͠ৼΔ͍Λม͍͑ͯΔ༁Ͱͳ͍ w ม͑ΔͷॳظͷΈ w ܧঝͱݴ͏ΑΓ໊લΛม͍͑ͯΔ͚ͩ
·ͱΊ w ΧελϜ7JFXΛ6*"QQFBSBODF͔Βૢ࡞͢Δͱ ࣮ͱςʔϚ͕Ͱ͖ͯḿΔ