【问题标题】:another question about line break in UILabel关于 UILabel 换行的另一个问题
【发布时间】:2010-08-09 17:55:51
【问题描述】:

我在 UILabel 中遇到换行问题。 我在 vb.net 中生成 xml,然后在 iPhone 应用程序中解析它。 xml 包含最初包含诸如
之类的 html 标签的文本,因此我可以并且需要将这些标签替换为在 iphone 中添加换行符的内容

我该怎么做?我试过 \n\n\r,他们没有工作

任何帮助将不胜感激

谢谢

【问题讨论】:

  • 请参考this 祝你好运。

标签: iphone objective-c xml vb.net line-breaks


【解决方案1】:

如果您从 XML 文件中读取字符串,则该字符串中的换行符 \n 在 UILabel tekst 中将不起作用。 \n 不会被解析为换行符。

这里有一个小技巧可以解决这个问题:

// correct next line \n in string from XML file
NSString *myNewLineStr = @"\n";
myLabelText = [myLabelText stringByReplacingOccurrencesOfString:@"\\n" withString:myNewLineStr];

myLabel.text = myLabelText;

因此,您必须将字符串中未解析的 \n 部分替换为硬编码 NSString 中已解析的 \n 部分。

这是我的其他标签设置:

myLabel.numberOfLines = 0;
myLabel.backgroundColor = [UIColor clearColor];
myLabel.textColor = [UIColor redColor]; 
myLabel.font = [UIFont fontWithName:@"Helvetica Neue" size:14.0];   
myLabel.textAlignment = UITextAlignmentCenter;

最重要的是将 numberOfLines 设置为 0(= 标签中的无限行数)。

不知道为什么 Apple 选择不对从 XML 读取的字符串中的 \n 进行解析?

希望对你有帮助,

阿尔

【讨论】:

  • 我只能说“我爱你!!”老兄!!我试图找到一个答案,最后对你的帖子做了……接受的答案应该是你的!
【解决方案2】:

\n 应该可以工作。确保将 numberOfLines 设置为 0,并将 lineBreakMode 设置为适合您的值。

【讨论】:

  • 我正在做,它不起作用,标签只显示“一些文本\n更多文本”
  • 我没有分配静态文本,我是从 xml 解析中获取的。可以吗?我在文本中有 \n ,看起来objective-c 只是忽略了它。我对此感到很困惑,因为我可以看到它对其他人有效。我正在寻找一些简单的东西,但找不到它。
  • 在调试器中检查您正在分配的确切内容。然后将其与分配静态文本的情况进行比较。希望这将为您提供解决问题的方向。
  • 感谢您的建议,我发现了一件有趣的事情,我正在调试器中检查我的字符串,我仍然可以看到 'some text\nmore text,但如果我手动分配文本,如 NSString *s = @"AAA\nBBB" 它可以工作,在这种情况下,在调试器中 \n 看起来更薄更苍白。如何将我常用的 \n 替换为更薄的 \n ?))
  • 变薄变白?你可以发布一个截图吗?您还可以在 XML 文本中发布将
    替换为 \n 的代码吗?
猜你喜欢
  • 2011-10-23
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
  • 2021-03-11
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
相关资源
最近更新 更多