在UILabel上显示时iphone上的NSString问题

时间:2011-01-12 01:36:07

标签: iphone

我有一个问题,我问的是一个新的问题,因为前一个人被搞乱了

NSString *s=@"hi\nhello\n\nwelcome to this world\ni m jhon"
label.frame = ...//big enough height
label.numberOfLines = 0;
label.text = s;

此代码可帮助我根据\ n

分隔字符串

但如果我这样做

NSString *s=Ad.content //where Ad.content value is **hi\nhello\n\nwelcome to this world\ni m jhon**


label.numberOfLines = 0;
label.text = s;

我无法通过\ n 对它们进行拼写,我在这里做错了善意建议

由于

3 个答案:

答案 0 :(得分:0)

NSString *_stringToSplit = @"hi\nhello\n\nwelcome to this world\ni m jhon";
NSArray *_splitItems = [_stringToSplit componentsSeparatedByString:@"\n"];
NSMutableArray *_mutableSplitItems = [NSMutableArray arrayWithCapacity:[_splitItems count]]; 
[_mutableSplitItems addObjectsFromArray:_splitItems];

[_splitItems count] is your solution

欢呼远藤

答案 1 :(得分:0)

“\ n”不是UILabel处理的特殊标记。实际上,它是由编译器处理的特殊标记。当编译器看到“Hello \ nWorld”时,它会将其转换为字符序列'H' 'e' 'l' 'l' 'o' LF 'W' 'o' 'r' 'l' 'd'(其中LF是ASCII代码10或换行符)。无论出于何种原因,您的Ad.content包含文字“\ n”序列而不是换行符。最好的解决方案是查看Ad.content的内容来自何处并将其修复为实际具有真实换行而不是“\ n”序列。如果你绝对必须有“\ n”序列,那么你可以使用-[NSMutableString stringByReplacingOccurrencesOfString:withString:]。当然,如果有人想要显示文字序列“\ n”,那么他们就不能这样做。如果你想支持泛型反斜杠转义(因此字面序列“\ n”将表示为“\ n”),那么你可以使用更复杂的方法NSScanner找到每个“\”,拔出下一个字符,并妥善处理。

我的建议是修复Ad.content以包含实际的换行符。

答案 2 :(得分:0)

我这样做了。这太容易了,我很生气,谢谢你们。

NSString * ss = [aDl.content stringByReplacingOccurrencesOfString:@“\ n”withString:@“\ n”];