ios - 使用换行符附加 NSAttributedString 会返回格式错误的属性字符串

标签 ios objective-c nsattributedstring

我正在使用 NSMutableAttributedStringNSAttributedString 以两种不同的字体大小显示标签文本。我的做法是:

NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"days" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];

它返回一个属性字符串,其中“2”的字体大小为 12,“days”的字体大小为 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];

这次属性字符串将属性应用于全文。我得到一个字体大小为“2\ndays”的属性字符串。

最佳答案

试试下面的代码,它工作正常:-

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];

注意:- 也将 numberOfLines 设置为 0 以允许任意数量的行

关于ios - 使用换行符附加 NSAttributedString 会返回格式错误的属性字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22681008/

相关文章:

ios Facebook Graph API - 发布音频文件

objective-c - Xcode:将图像设置为 Touch Bar 上的按钮(适用于新 MacBook Pro)

ios - NSAttributedString 项目符号列表问题

iphone - 存储 NSAttributedString 核心数据

swift - 如何在 Swift 中附加带有属性字符串的属性文本字符串

ios - iOS 中的其他 Mtouch 参数

ios - 有没有办法在 Storyboard中弹出 View Controller ?

plist 中 UICollectionView 中的 iOS 部分 - 从 UILabel 分配给 NSString 的不兼容指针类型

objective-c - 循环 header 导入,枚举无法识别

ios - 绝对应用 CGAffineTransform* 到 UIView