UILabelリッチテキスト設定
2805 ワード
iOSの開発では、異なる色とフォントを表示したり、いくつかの文字に削除線や下線を付けたりする必要があることがよくあります.前にネット上でいくつかの資料を探して、あるのはUILabelのtextLayerを再描画して、あるのはhtml 5で実現して、すべて比較的に面倒で、その上多くのUILabelの属性も役に立たなくて、効果はすべて理想的ではありません.NSMuttableAttstring(属性付き文字列)は、上記の要件のいくつかを簡単に実現できることが後に分かった.
インスタンス化方法:
文字列を使用した初期化
辞書には、
使用方法:ある範囲内の文字に複数の属性を設定 使用例
また、他のtextを設定できるコントロール(UIButton,UItextFieldなど)にもこのプロパティがあります.この記事は詳細ではありませんが、簡単に説明するだけで、他の効果の実装には参照APIでより多くのプロパティと使用方法があります.テキストリンク
インスタンス化方法:
文字列を使用した初期化
- (id)initWithString:(NSString *)str;
例:NSMutableAttributedString *AttributedStr = [[NSMutableAttributedStringalloc]initWithString:@" "];
- (id)initWithString:(NSString *)str attributes:(NSDictionary *)attires;
辞書には、
NSDictionary *attributeDict = [NSDictionarydictionaryWithObjectsAndKeys: [UIFontsystemFontOfSize:15.0],NSFontAttributeName, [UIColorredColor],NSForegroundColorAttributeName, NSUnderlineStyleAttributeName,NSUnderlineStyleSingle,nil]; NSMutableAttributedString *AttributedStr = [[NSMutableAttributedStringalloc]initWithString:@" " attributes:attributeDict];
- (id)initWithAttributedString:(NSAttributedString *)attester;
NSAttributedStringを使用して初期化されたNSMutablesString、NSStringと同様の属性名と属性値が格納されています.使用方法:ある範囲内の文字に複数の属性を設定
- (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range;
ある範囲内の文字にある属性を追加- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;
ある範囲内の文字に複数の属性を追加- (void)addAttributes:(NSDictionary *)attrs range:(NSRange)range;
ある範囲内のある属性を削除- (void)removeAttribute:(NSString *)name range:(NSRange)range;
NSFontAttributeName
フォントNSParagraphStyleAttributeName
段落フォーマットNSForegroundColorAttributeName
フォント色NSBackgroundColorAttributeName
背景色NSStrikethroughStyleAttributeName
削除線フォーマットNSUnderlineStyleAttributeName
下線フォーマットNSStrokeColorAttributeName
削除線色NSStrokeWidthAttributeName
削除線幅NSShadowAttributeName
シャドウの詳細はアップルの公式説明ドキュメントを参照UILabel *testLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 320, 30)]; testLabel.backgroundColor = [UIColor lightGrayColor]; testLabel.textAlignment = NSTextAlignmentCenter;
NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:@" "];
[AttributedStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16.0] range:NSMakeRange(2, 2)];
[AttributedStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(2, 2)]; testLabel.attributedText = AttributedStr;
[self.view addSubview:testLabel];
また、他のtextを設定できるコントロール(UIButton,UItextFieldなど)にもこのプロパティがあります.この記事は詳細ではありませんが、簡単に説明するだけで、他の効果の実装には参照APIでより多くのプロパティと使用方法があります.テキストリンク