我正在尝试使用用户的输入值制作时间表应用。每当我尝试在标签上打印结果时,它只打印最后一行而不是完整的表格。
如何在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"
}
}
答案 0 :(得分:0)
赋值运算符=只需将新值重新分配给标签文本即可。您需要使用Compound Assignment Operator调用添加赋值运算符+ =添加现有文本,它将通过将新值添加到现有值来指定新值。
let a:String = "Hello"
print(a) // Hello
a += " World!"
print(a) // Hello World!
同样的术语将适用于您将在标签的text属性上使用+ =的情况。
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
答案 1 :(得分:0)
除其他答案外(使用+=
和\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
}
}