【问题标题】:\n in UILabel not working\n 在 UILabel 中不起作用
【发布时间】:2016-01-17 04:09:20
【问题描述】:

我的服务器返回一些包含\n 的文本。我希望\n 打印一个新行,但它不起作用。 Swift 刚刚打印了文本和\n。但是如果我在本地声明字符串,例如

let test = "This is a \nbook"

有效! Swift 和 UILabel 打印一个新行,例如

This is a

book

然后我设置我的代码

myLabel.numberOfLines = 0

它没有按预期工作,但局部变量有效。

我不明白为什么。

【问题讨论】:

  • 您能否在此处发布您尝试打印的示例文本?所以可以用相同的代码进行测试
  • 服务器是否可能返回 \\n ?这就解释了为什么它正在打印\n

标签: ios swift uilabel


【解决方案1】:

在你从服务器得到的字符串上试试这个:

saleDescription["description"].string!.replacingOccurrences(of: "\\n", with: "\n")

【讨论】:

    【解决方案2】:
    myLabel.numberOfLines = -1
    

    使 myLabel numberOfLines = -1 表示“无限”行。我希望这会有所帮助。

    【讨论】:

    • 这行不通。如果在 UILabel 上打印或设置它。它总是打印“\n”
    • @SakonlapakPetcharayuttapan 你的方法是正确的。要允许多行,您需要将其设置为零 developer.apple.com/library/ios/documentation/UIKit/Reference/…
    • @SakonlapakPetcharayuttapan 确保您的标签框架有足够的空间来显示所有行
    • @LeoDabus 我有足够的空间来显示所有行。如果我从我的服务器接收文本。它总是在日志和 UILabel 中打印 /n 但如果我在本地声明相同的文本。它可以工作并为我显示一个新行
    • @LeoDabus 我尝试使用该方法然后我的来自服务器的字符串没有将 \n 拆分为数组,但它在数组 [0] 中将 \n 更改为 \\n
    【解决方案3】:

    当您遇到这种情况时,请使用UITextView 而不是UILabel

    【讨论】:

    • 对于谁投反对票,textview 是这种情况下的唯一解决方案。我从服务器获取数据,在 UILabel 中填充文本时,\n 没有返回。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    相关资源
    最近更新 更多