UILabelは,
今回はそんなUILabelの機能を拡張してくれるサブクラス3種を紹介します。
OHAttributedLabel
特徴
NSAttributedStringをラップしてUILabelに持たせたもので,
またリンクの付与,
使用準備
ソースコードを以下のURLよりダウンロード
CoreText.
frameworkをプロジェクトに追加 OHAttributedLabel.
hとNSAttributedString+Attributes. hをインポート #import "OHAttributedLabel.
h" #import "NSAttributedString+Attributes. h"
テキストの一部を赤字にする
NSMutableAttributedStringのインスタンスを生成します。引数には表示する文字列を渡します。
NSString *txt = @"
『モンスターを集めてまいれ』 というアプリをリリースしました。無料ですのでぜひお試しください! "; NSMutableAttributedString *attrStr = [NSMutableAttributedString attributedStringWithString:txt]; setTextColor:range:メソッドで,
変更するフォントカラーと, 変更する範囲を指定します。 NSRange range = [txt rangeOfString:@"無料"]; UIColor *color = [UIColor colorWithRed:0.
5f green:0. f blue:0. f alpha:1. f]; [attrStr setTextColor:color range:range]; OHAttributedLabelオブジェクトのattributedTextプロパティにNSMutableAttributedStringオブジェクトをセットして適用完了です。
self.
ohLabel. attributedText = attrStr; ちなみに,
setTextColor:range:の代わりにrange引数のないsetTextColor:メソッドを用いると, 文字列全体に適用されます。 [attrStr setFont:[UIFont fontWithName:@"Helvetica" size:18]]; [attrStr setTextColor:[UIColor grayColor]];
また,
太字指定はsetTextBold:range:メソッドでYESをセットするだけです。 [attrStr setTextBold:YES range:range];
その他の使い方
リンクを貼る場合は,
NSRange linkRange = [txt rangeOfString:@"モンスターを集めてまいれ"];
NSURL *linkUrl = [NSURL URLWithString:@"http://itunes.apple.com/jp/app/id491657299?mt=8"];
[self.ohLabel addCustomLink:linkUrl inRange:linkRange];
OHAttributedLabelのソースコードに付属しているサンプルプロジェクトには,
centerVerticallyプロパティにYESをセットすると中央揃え,
self.ohLabel.centerVertically = YES;
UILabelのtextAlignmentに指定できる値として,
これは
#define UITextAlignmentJustify ((UITextAlignment)kCTJustifiedTextAlignment)
このようにCoreTextで定義されているアライメントタイプであるkCTJustifiedTextAlignmentをUITextAlignment型にキャストしたもので,
self.ohLabel.textAlignment = UITextAlignmentJustify;