0

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

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

TTTAttributedLabel 与 UILabel

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

知道如何让 TTTAttributedLabel 在这种情况下表现得像 UILabel 吗?

4

1 回答 1

1

我相信你确切地知道问题出在哪里。我也和你在一起,我遭受了同样的原因。将近两个星期,我试图解决这个问题。谷歌搜索并查看 Apple 的文档并查看 stackoverflow,我到处查看,无法得到明确的答案。在 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];

其实@"Line 1\r\n Line 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

上面可以看到,模拟器和设备\r的处理是不同的。为此,我做了很多努力。我不知道具体是什么,armv7和i386处理的区别。但我认为如果一个错误或一种 NSString 和 NSAttributedString 也认为这些关系。

我的回答是为了解决您的问题,我真的希望它对您有所帮助。

于 2012-08-05T14:09:12.090 回答