75

iOS 6で属性付き文字列をUITextViewに設定しようとしています。問題は、属性付き文字列にfontプロパティを設定しようとすると、行間隔が無視されることです。ただし、フォントを設定せず、デフォルトのフォントを使用すると、行間が機能します。

NSString *string = @" Hello \n world";
attrString = [[NSMutableAttributedString alloc] initWithString:string];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];

paragraphStyle.minimumLineHeight = 50;
// setting the font below makes line spacing become ignored
[attrString addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:20] range:NSMakeRange(0, string.length)];
[attrString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, string.length)];

mainTextView.attributedText = attrString;

何が起こっているのか分かりますか?

4

5 に答える 5

107

属性付き文字列プログラミングガイド:

UIFont *font = [UIFont fontWithName:@"Palatino-Roman" size:14.0];
NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObject:font
                                forKey:NSFontAttributeName];
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"strigil" attributes:attrsDictionary];

更新:addAttribute:自分のアプリでメソッドを使用しようとしましたが、iOS6シミュレーターでは機能していないようです。

NSLog(@"%@", textView.attributedText);

ログには正しく追加された属性が表示されているようですが、iOSシミュレーターのビューには属性が表示されませんでした。

于 2012-11-09T04:13:23.860 に答える
3

iOS 6 には、フォントが設定されているときに行の高さが無視されるというバグがありました。Radar: UITextView Ignores Minimum / Maximum Line Height in Attributed String .

于 2013-07-10T15:32:22.333 に答える