让我们看看我有一个这样的字符串:

NSString *longStr = @"AAAAA\nBBBBB\nCCCCC";  

如何使UILabel像这样显示消息

五星级 BBBBB CCCCC

我不认为\n能被UILabel识别,我能在NSString中放入什么东西让UILabel知道它必须在那里创建换行符吗?


当前回答

我也遇到过同样的问题,下面是我解决问题的方法。希望这对某些人有所帮助。

// Swift 2

   lblMultiline.lineBreakMode = .ByWordWrapping // or use NSLineBreakMode.ByWordWrapping
   lblMultiline.numberOfLines = 0 

/ / objective - c

  lblMultiline.lineBreakMode = NSLineBreakByWordWrapping;
  lblMultiline.numberOfLines = 0;

// c# (Xamarin.iOS)

  lblMultiline.LineBreakMode = UILineBreakMode.WordWrap;
  lblMultiline.Lines = 0;  

其他回答

在xCode 11, Swift 5的\n工作良好,尝试以下代码:

textlabel.numberOfLines = 0
textlabel.text = "This is line one \n This is line two \n This is line three"

你必须在UILabel上设置numberolines属性。默认值是1,如果您将其设置为0,它将删除所有限制。

在Swift 2.2, > iOS 8

我在Storyboard的属性检查器下设置Lines = 0,并将引用出口链接到标签。然后在控制器中像这样使用:

 @IBOutlet weak var listLabel: UILabel!

 override func viewDidLoad() {
      ...
      listLabel.text = "Line 1\nLine 2\nLine 3\nLine 4\nLine 5\nLine 6\nLine 7\nLine 8"
 }

在我的情况下,也\n是不工作的,我通过保持行数为0,复制和粘贴文本与新行本身例如,而不是Hello \n世界我粘贴

你好 世界

在接口构建器中。

在Interface Builder中的小框中输入时使用option-return插入换行(\n)。在Interface Builder的Label属性中,设置# Lines = 0。

选择标签,然后将Lines属性更改为0,如上图所示,然后在字符串中使用\n作为换行符。