如果更改基线偏移属性,UILabel 属性文本不能有多行

Mon*_*nqi 6 iphone objective-c nsattributedstring uilabel ios

我想更改单词中括号的基线偏移量,例如“[\xe6\x8e\xa8]blablabla”。

\n\n
NSRange range = [text rangeOfString:@"[\xe6\x8e\xa8]"];\nif (range.location == 0) {\n    [text addAttribute:NSBaselineOffsetAttributeName value:@(0.5) range:NSMakeRange(0, 1)];\n    [text addAttribute:NSBaselineOffsetAttributeName value:@(0.5) range:NSMakeRange(range.length-1, 1)];\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但标签的第二行消失并被截断。有人有主意吗?

\n

小智 5

请使用 lineBreakMode 和 numberOfLines 来调用 sizeToFit,如下所示:

label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit]; 
Run Code Online (Sandbox Code Playgroud)

高度将自动计算。

谢谢