Home > dev/programming > three20:TTStyleの威力。

three20:TTStyleの威力。

iPhoneのサードパーティフレームワークthree20ネタ続編。

three20はnibファイルとの共存をさせようとして、ちょっとハマる。まだ深くは調査していないが、viewDidLoadが呼ばれなかったりと、不思議なことがいろいろある。

基本的にviewは手でコーディングしてしまえば、特には問題はないようだ。

three20でとても助かったのは、TTStyleによるUIコンポーネントのビジュアルをカスタマイズが可能な仕組み。これはHTMLでいうスタイルシートのようにスタイルを別に管理し、ビューコントローラでスタイルを指定できる仕組みで、TTStyleクラスを拡張したスタイル(クラス)を加工することによって、ボタン(TTButton)の形などを比較的容易にカスタマイズできる。

今回はアイコンの上に数字を表示するバッジをボタン上に配置する必要があったのだが、Cocoa TouchフレームワークではSpringboard(アプリ起動インタフェース)かUITabBarにしかつけることができない。通常このような場合はUIImageViewを拡張したクラスで実現するが、three20ではバッジのスタイルも既に定義されているので、以下のように簡単に実現できる。

TTLabel *myBadge = [[TTLabel alloc] init];

myBadge.style = TTSTYLE(badge);

myBadge.backgroundColor = [UIColor clearColor];

myBadge.userInteractionEnabled = NO;

[myButton addSubview:myBadge];

myBadge.text = [NSString stringWithFormat:@”%d”, itemCount];

[myBadge sizeToFit];

myBadge.frame = CGRectMake(myButton.width – myBadge.width-1, 4, myBadge.width, myBadge.height);

楽です。
Advertisements
Categories: dev/programming Tags:
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: