【问题标题】:How to replicate a sentence with line breaks in between with an NSString?如何用 NSString 复制一个带有换行符的句子?
【发布时间】:2014-04-25 21:20:14
【问题描述】:

我正在用UILabels 替换一些旧的UIWebViews,然后我意识到我有一个如下所示的字符串:

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 %@.

我在这里做什么?

【问题讨论】:

  • Umm... 加粗包含的文本,它不会生成换行符(
    这样做)但是假设您的原始字符串只是输入错误,您应该替换
    与 \n。在您的测试用例中,您重复吃掉的参数,它应该只是[NSString stringWithFormat:eaten, @"CAKE", @"JANINE"];

标签: ios objective-c uiwebview nsstring uilabel


【解决方案1】:

您需要直接更改 eaten 字符串(最简单和最干净)或在中间添加换行符

NSString *warning = [NSString stringWithFormat:eaten, @"\nCAKE\n", @"JANINE"];

如果它是一个变量,您需要使用[NSString stringWithFormat:@"\n%@\n", middleVar] 来构造它。

无论哪种方式,从这样的变量中获取格式都是一个坏主意。直接使用文字,以便编译器可以为您检查参数编号和类型。

【讨论】:

    【解决方案2】:

    试试这个:

    [NSString stringWithFormat:@"YOU ATE\n%@\nFROM %@.", "CAKE", "JANINE"];
    

    如果要复用格式:

    NSString *eaten = @"YOU ATE\n%@\nFROM %@.";
    [NSString stringWithFormat:eaten, "CAKE", "JANINE"];
    

    【讨论】:

      【解决方案3】:

      使用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。

      【讨论】:

      • 更新问题。对此感到抱歉。但事实并非如此。
      猜你喜欢
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 1970-01-01
      相关资源
      最近更新 更多