我用UIWebViews
替换了一些旧的UILabels
,我意识到我的字符串如下所示:
NSString * eaten = YOU ATE <b>%@</b> FROM %.
以下列方式调用此句:
NSString *warning = [NSString stringWithFormat:eaten, "CAKE", "JANINE"];
显示为:
YOU ATE
CAKE
FROM JANINE.
我希望它显示的方式。我现在如何为NSString添加换行符?
我已尝试过以下内容,但它们都无效:
NSString *warning = [NSString stringWithFormat:@"%@\r%@\r%@",eaten, "CAKE", "JANINE"];
NSString *warning = [NSString stringWithFormat:@"%@\n%@\n%@",eaten, "CAKE", "JANINE"];
NSString *warning = [NSString stringWithFormat:@"%@\r\n%@\r\n%@",eaten, "CAKE", "JANINE"];
和
self.warningLabel.numberOfLines = 0;
但输出结果如下:
You sent %@ to %@.
我在这做什么?
答案 0 :(得分:1)
您需要直接更改eaten
字符串(最简单,最干净)或在中间字符串周围添加换行符
NSString *warning = [NSString stringWithFormat:eaten, @"\nCAKE\n", @"JANINE"];
如果它是变量,您需要使用[NSString stringWithFormat:@"\n%@\n", middleVar]
来构建它。
无论哪种方式,从类似的变量中获取格式都是一个坏主意。直接使用文字,以便编译器可以为您检查参数编号和类型。
答案 1 :(得分:0)
使用backslashes \n
代替转发slashes /n
。
NSString *warning = [NSString stringWithFormat:@"%@\n%@\n%@",eaten, "CAKE", "JANINE"];
<强>更新强>
哦,你有两个格式字符串。这不好。
NSString *eaten2 = @"YOU ATE\n%@\nFROM %@.";
NSString *warning = [NSString stringWithFormat:eaten2, "CAKE", "JANINE"];
不要忘记让标签的高度足够高,以便将三条线设置为numberOfLines
为0。
答案 2 :(得分:0)
试试这个:
[NSString stringWithFormat:@"YOU ATE\n%@\nFROM %@.", "CAKE", "JANINE"];
如果您想重复使用格式:
NSString *eaten = @"YOU ATE\n%@\nFROM %@.";
[NSString stringWithFormat:eaten, "CAKE", "JANINE"];