3

UITextViewwithの正当化されたテキストを配置しようとしています。これは、太字と通常のフォントが必要なため、別NSMutableAttributedStringNSMutableAttributedStringもので構成されているため、別のを追加します。これは私のものです:NSAttributedStringNSStringNSMutableAttributedString

NSAttributedString *one = [[NSAttributedString alloc] initWithString:@"abc" 
                                                          attributes:boldDict];
NSAttributedString *two = [[NSAttributedString alloc] initWithString:@" def" 
                                                          attributes:regularDict];
NSAttributedString *three = [[NSAttributedString alloc] initWithString:@" ghi" 
                                                            attributes:boldDict];

NSMutableAttributedString *string = 
 [[NSMutableAttributedString alloc] initWithAttributedString:one];
[string appendAttributedString:two];
[string appendAttributedString:three];

私はこれを試しました:

[self.text_view setTextAlignment:NSTextAlignmentJustified]

この:

NSMutableParagraphStyle *paragraphStyles = [[NSMutableParagraphStyle alloc] init];
paragraphStyles.alignment = NSTextAlignmentJustified; 
Dictionary *attributes = @{NSParagraphStyleAttributeName: paragraphStyles};

これを NSMutableAttributedString に適用しますが、どちらも機能しません。どうすればいいですか?

4

1 に答える 1

1

NSAttributedString に透明な背景色を指定することで、同じ問題を修正しました。

NSString のような単純な NSAttributedString をレンダリングする UILabel コードのバグのようです。

Xamarin.iOS の例:

var paragraphStyle = new NSMutableParagraphStyle();
paragraphStyle.Alignment = UITextAlignment.Justified;
var attributedText = new NSAttributedString(simpleString,
                         paragraphStyle: paragraphStyle,
                         backgroundColor: Color.Transparent.ToUIColor());
myLabel.AttributedText = attributedText;
于 2015-05-03T17:26:46.280 に答える