3

プロパティリストには、次のような文字列があります。

<string>A |picture| is worth *1000\* words.</string>

明らかに、"picture" はイタリック、"1000" は太字にする必要があります。OHAttributedLabelを使用してテキストを表示しようとしています:

NSString *theString = [pListData objectForKey:@"theString"];

NSMutableAttributedString* attrStr = [OHASBasicMarkupParser attributedStringByProcessingMarkupInString:theString];

self.myLabel.attributedText = attrStr; //self.myLabel is a UILabel

そして、ここに私が得るものがあります:

ここに画像の説明を入力

原因の単語が小さいフォントで表示されるのはなぜですか? これを修正するにはどうすればよいですか?

4

1 に答える 1

1

私は以前にこのようなことを扱いました。だから、これはあなたを助けるでしょう。また、私はあなたのためにそれをテストし、正常に動作します:)

NSString *string = @"A |picture| is worth *1000* words.";

// Create an NSMutableAttributedString in order to be able to use the NSAttributedString+Attributes.h category
NSMutableAttributedString *attributedString = [NSMutableAttributedString attributedStringWithString:string];

// If using custom fonts, import all styles in the app and update the plist file
[attributedString setFont:[UIFont fontWithName:@"Helvetica" size:20.0]];

// Parse the markup and set the attributedText of the UILabel instance (no need to use the OHAttributedLabel subclass)
attributedString = [OHASBasicMarkupParser attributedStringByProcessingMarkupInAttributedString:attributedString];
label.attributedText = attributedString;

編集:-setFont:を呼び出した後に使用すると-attributedStringByProcessingMarkupInAttributedString、解析中に行われたすべての作業がリセットされるため、問題が発生します。

于 2014-01-12T23:27:53.960 に答える