跟进肯的回答
无法设置textAlignment
为,这将导致抛出异常:NSTextAlignmentNatural
UILabel
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'textAlignment does not accept NSTextAlignmentNatural'
它在使用属性文本时确实有效,可以在 Interface Builder 中设置,如下所示:
但是,在本地化情节提要时,似乎没有拾取属性文本。
为了解决这个问题,我UILabel
在 Interface Builder 中将配置保留为纯NSAttributedString
文本,并使用标签的文本创建了一个,在属性字符串上设置对齐并将其分配给标签的attributedText
属性:
-(void)viewDidLoad
{
[super viewDidLoad];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.alignment = NSTextAlignmentNatural;
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:self.lbl.text];
[string addAttribute:NSParagraphStyleAttributeName
value:paragraphStyle
range:NSMakeRange(0, string.length)];
self.lbl.attributedText = string;
}
这在这种简单的情况下效果很好,但是当您需要更复杂的属性字符串样式时,我可以看到它会崩溃。但显然在这种情况下,您可能只是NSLocalizedString
在创建NSAttributedString
.