将文本分配给多行UILabel的一行

时间:2016-09-06 18:45:45

标签: ios swift string uilabel

UILabel的文本作为一个整体分配。如果存在多行标签,则可以将一串文本分配给该标签的特定行。

因此我可以执行myLabel.text = "A very long line...."之类的操作而不是myLabel.text.line[0] /*(or [1] or whatever)*/ = "One line from my whole string"吗?

2 个答案:

答案 0 :(得分:4)

您可以使用" \ n"

在字符串中添加换行符
myLabel.text = "A \n very long \n line"

注意:将标签的行数设置为0,以允许任意数量的行。

myLabel.numberOfLines = 0

答案 1 :(得分:2)

您可以创建一个行数组,然后将文本分配给这样的行:

var lines = [String]()
lines.append("Line number 1")
lines.append("Line number n")

然后你可以这样做:

func setLabelTextForLines(lines:[String]){
    var text = ""
    for line in lines {
        text += line
        text += "\n"
    }

    myLabel.numberOfLines = 0
    myLabel.text = text
}

所以你可以有一个名为lines的数组并对其进行编辑,然后调用该函数来重新分配文本:

setLabelTextForLines(lines)
lines[0] = "Changed the first line"
setLabelTextForLines(lines)