首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用换行符追加NSAttributedString将返回格式错误的属性字符串

使用换行符追加NSAttributedString将返回格式错误的属性字符串
EN

Stack Overflow用户
提问于 2014-03-27 15:35:53
回答 2查看 46.7K关注 0票数 27

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

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

返回一个字体大小为12的"2“和字体大小为8的”day“的属性字符串。

然而,另一个场景是在2之后添加一个换行符。我使用以下代码:

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

此时间属性字符串将该属性应用于全文。我得到一个字体大小为8的带有“2\nday”的属性字符串。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-27 16:17:44

试试下面的代码,它工作得很好:

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,以允许任意数量的行

票数 42
EN

Stack Overflow用户

发布于 2017-01-11 22:42:06

这在Swift中有效:

let attributedText = NSAttributedString(string: "Happy \nDays")
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping
label.attributedText = attributedText
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22681008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档