TTTAttributedLabel:\ r \ n行结尾的文本呈现错误

时间:2012-08-05 11:41:26

标签: iphone objective-c ios core-text

TTTAttributedLabel中,\r\n被计为2行结尾,而它应该只有一行。 UILabel正确处理这种情况。

示例:这是字符串@"Line 1\r\nLine 2"。最上面一个是TTTAttributedLabel,下面一个是UILabel

TTTAttributedLabel vs UILabel

Xcode项目文件:http://tinywhale.net/TestProject.zip

在这种情况下,任何想法如何使TTTAttributedLabel表现得像UILabel?

1 个答案:

答案 0 :(得分:1)

我确定你确切知道问题是什么。我也和你在一起,我也遭遇了同样的道理。 差不多两个星期我试着解决这个问题。 谷歌搜索和查看Apple的文档,并查看堆栈溢出,我到处寻找,无法得到一个明确的答案。 在UILabel属性中,“text(NSString)”是\ r \ n,并且仅出现两个连续的\ n仅适用。但是CustomLabel属性“attributedText(NSAttributedString)”是\ r \ n当两个连续应用时。所以我的解决方案\ r \ n和两个连续\ r的出现已被替换为空字符串。

NSString *string = [myString stringByReplacingOccurrencesOfString:@"\r" withString:@""];
NSAttributedString *attributedString = [NSAttributedString attributedStringWithString:string];

事实上,@“第1行\ r \ n第2行”如果你检查NSLog有有趣的事实。

NSLog(@"Line 1\r\nLine 2");

在模拟器中

2012-08-05 23:18:59.170 SimpleTest[30721:707] Line 1
Line 2

在设备中

2012-08-05 23:18:59.170 SimpleTest[30721:707] Line 1

Line 2

如上所示,模拟器和设备的处理是不同的。出于这个原因,我做了很多努力。我不知道究竟是什么,armv7和这是关于i386处理之间的区别。但我觉得 如果一个bug或一种NSString和NSAttributedString也认为这些关系。

我解决问题的答案我真的希望它对你有帮助。