2012-08-05 56 views

回答

1

我確定您確切地知道問題所在。我也和你在一起,我遭受了同樣的原因。我嘗試着解決這個問題,差不多兩個星期。 谷歌搜索和查看蘋果的文檔,並尋找stackoverflow,我到處看,無法得到明確的答案。 在UILabel屬性「文本(NSString)」是\ r \ n並且出現兩個連續\ n僅適用。但是CustomLabel屬性「屬性文本(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處理之間的區別。但我認爲 如果一個bug或一種NSString和NSAttributedString也認爲這些關係。

我的答案解決您的問題我真的希望它可能對您有所幫助。

+0

刪除\ r與空字符串將是我的最後一個選項,因爲我需要維護字符串的長度出於某種原因。我已經在github上的TTTAttributedLabel的repo上打開了一個問題,你可以訂閱這個,看看是否有任何來自@mattt的更新,誰應該更多地瞭解CoreText:https://github.com/mattt/TTTAttributedLabel/issues/116 – jasondinh 2012-08-05 15:19:51