Vil*_*nne 10 objective-c nsattributedstring uilabel ios
我需要显示一个UILabel文本,它有两种不同的样式(不同的颜色,文本的部分粗体).使用attributedText属性可以很容易地解决这个问题.
我的问题是文本可能会或可能不会长于我可以放在标签中的内容.使用纯文本时,一切都按我想要的方式工作.文本是自动换行以适合标签中的行数,如果/当文本比标签中显示的长时,则尾部被截断.
当我切换到使用attributedText时,我只能在尾部截断和自动换行之间进行选择.如果我希望尾部被截断,那么标签只会呈现带有截尾的单行(即使它可以适合10行).如果我选择自动换行,那么尾部不会被截断,但是不能显示标签中不适合的行.
我的内容字符串不包含任何换行符,它只是一个长字符串.
当我设置linespacing时,我错过了截断,但我只需要将linebreakmode添加到paragraphstyle
NSMutableParagraphStyle *paragrahStyle = [[NSMutableParagraphStyle alloc] init];
[paragrahStyle setLineSpacing:1.5];
[paragrahStyle setLineBreakMode:NSLineBreakByTruncatingTail];
NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:@"Long string that truncates"];
[attributedText addAttribute:NSParagraphStyleAttributeName value:paragrahStyle range:NSMakeRange(0, [attributedText length])];
self.label.attributedText = attributedText;
Run Code Online (Sandbox Code Playgroud)
NSParagraphStyle您可以根据需要设置lineBreakMode,并使用 将其应用于字符串NSParagraphStyleAttributeName。我不知道是否所有的价值观都NSLineBreakMode得到支持,但我没有理由相信它们不被支持。
| 归档时间: |
|
| 查看次数: |
13908 次 |
| 最近记录: |