2013年4月25日木曜日

UISegmentedControl の文字が小さい









この画像を見て、UIControlSegmented内の文字列は大きいと感じますか?小さいと感じますか?
私は小さいと感じますので、デフォルトの文字サイズから変更したいと思います。

ですが、UIControlSegmented には各アイテムの文字サイズを変更するメソッドは用意されていません。
しかし、各アイテムの文字の設定を変更するメソッドは用意されています。


- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state;

(iOS5からですね。)


今回は試しにフォントサイズを16で太字に変更してみましょう。
UISegmentedControl *monthSegmented = [[UISegmentedControl alloc] initWithFrame:CGRectMake(8, 4, 304, 32)];
[monthSegmented setTitleTextAttributes:@{ UITextAttributeFont:[UIFont boldSystemFontOfSize:16],   } forState:UIControlStateNormal];









見やすくはなったのでは無いでしょうか?

どの様な項目が変更できるかは UIStringDrawing.h に記述されています。

UIKIT_EXTERN NSString *const UITextAttributeFont;             // フォント
UIKIT_EXTERN NSString *const UITextAttributeTextColor;        // 文字色
UIKIT_EXTERN NSString *const UITextAttributeTextShadowColor;  // 文字影色
UIKIT_EXTERN NSString *const UITextAttributeTextShadowOffset; // 文字影幅
一通りはいじれるようですね。

0 件のコメント:

コメントを投稿