use*_*693 24 objective-c nsattributedstring ios
我正在使用NSMutableAttributedString并NSAttributedString以两种不同的字体大小显示标签文本.我的方法是:
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"days" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
Run Code Online (Sandbox Code Playgroud)
它返回一个归因字符串,字体大小为12,字符大小为"2",字体大小为8.
但是,另一种情况是在2之后添加换行符.我使用以下代码:
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"\ndays" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
Run Code Online (Sandbox Code Playgroud)
此时属性字符串应用全文的属性.我得到一个字体大小为8的"2 \ndays"的属性字符串.
Hus*_*bir 39
试试下面的代码,它工作正常: -
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"\ndays" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
self.lbl.numberOfLines = 0;
[self.lbl setAttributedText:muAtrStr];
Run Code Online (Sandbox Code Playgroud)
注意: - 同时将numberOfLines设置为0以允许任意数量的行
这适用于Swift:
let attributedText = NSAttributedString(string: "Happy \nDays")
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping
label.attributedText = attributedText
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39236 次 |
| 最近记录: |