繁体   English   中英

在 UILabel 中添加多行

[英]Adding multiple lines in UILabel

我正在尝试使用用户的输入值制作时间表应用程序。 每当我尝试在标签上打印结果时,它只会打印最后一行而不是完整的表格。

如何在UILabel附加文本? 这是我的代码:

if let textBox = textField.text{
    let textBoxNum = Int(textBox)

    if let number = textBoxNum{
        if number > 0{
           let i = 1

           while i <= 20{
               label.text = "\(number) x \(i) = \(number * i)"
            }
        }
        else{
            label.text = "Please enter a positive whole number"
        }
    }
    else{
        label.text = "Please enter a positive whole number"
    }
}

赋值运算符 = 只是为标签文本重新分配一个新值。 您需要使用复合赋值运算符调用添加赋值运算符 += 添加到现有文本,它将通过将新值添加到现有值来分配新值。

let a:String = "Hello"      
print(a)                    // Hello
a += " World!"
print(a)                    // Hello World!

同样的术语将应用于您将在标签的文本属性上使用 += 的情况。

if let textBox = textField.text{
    let textBoxNum = Int(textBox)

    if let number = textBoxNum{
        if number > 0{
           let i = 1

           while i <= 20{
               label.text += "\(number) x \(i) = \(number * i)\n"
               // Use of compound operator here will append the text so you have
               // to use a new line escape character to print the text properly.
            }
        }
        else{
            label.text = "Please enter a positive whole number"
        }
    }
    else{
        label.text = "Please enter a positive whole number"
    }
}

更多关于运营商的信息: https : //developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/BasicOperators.html

除了其他答案(使用+=\\n换行):

如果使用标签,则必须将行数设置为零,这将允许行数不受限制:

label.numberOfLines = 0

但是您可能更希望UITextField显示多行文本,如果文本太长,它允许用户上下滚动。 您只需要禁用弹出的编辑/键盘,例如:

class TheViewController: UIViewController, UITextFieldDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.theTextField.delegate = self
    }

    func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
        return false
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM