UILabel 不改变它的值
UILabel don't change its value
我正在使用 Swift 进行应用程序开发的简单练习:导航和工作流教科书,但不明白为什么这段代码不起作用并且标签文本没有改变:
import UIKit
class MiddleViewController: UIViewController {
@IBOutlet var happened: UILabel!
var eventNumber = 1
override func viewDidLoad() {
super.viewDidLoad()
if let existingText = happened.text {
happened.text = "\(existingText) \n Event number \(eventNumber) was viewDidLoad"
eventNumber += 1
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let existingText = happened.text {
happened.text = "\(existingText) 1"
eventNumber += 1
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if let existingText = happened.text {
happened.text = "\(existingText)\nEvent number \(eventNumber) was viewDidAppear"
eventNumber += 1
}
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if let existingText = happened.text {
happened.text = "\(existingText)\nEvent number \(eventNumber) was viewWillDisappear"
eventNumber += 1
}
}
override func viewDidDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if let existingText = happened.text {
happened.text = "\(existingText)\nEvent number \(eventNumber) was viewDidDisappear"
eventNumber += 1
}
}
}
如果我切换视图控制器,标签文本不会改变。
"(existingText)\n事件编号 (eventNumber) 是 viewWillDisappear"
因为在上面的文本中你使用了 "\n" ,所以它在下一行显示文本 label.Please 检查你的标签的 numberOfLines 。如果它是 1 那么它不会显示,因为文本在第二行
您需要添加
happened.numberOfLines = 0
在你的 viewDidLoad() 中。这将确保 UILabel 可以有多行文本。
viewDidLoad()中的代码:
override func viewDidLoad() {
super.viewDidLoad()
happened.numberOfLines = 0
if let existingText = happened.text {
happened.text = "\(existingText) \n Event number \(eventNumber) was viewDidLoad"
eventNumber += 1
}
}
我正在使用 Swift 进行应用程序开发的简单练习:导航和工作流教科书,但不明白为什么这段代码不起作用并且标签文本没有改变:
import UIKit
class MiddleViewController: UIViewController {
@IBOutlet var happened: UILabel!
var eventNumber = 1
override func viewDidLoad() {
super.viewDidLoad()
if let existingText = happened.text {
happened.text = "\(existingText) \n Event number \(eventNumber) was viewDidLoad"
eventNumber += 1
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let existingText = happened.text {
happened.text = "\(existingText) 1"
eventNumber += 1
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if let existingText = happened.text {
happened.text = "\(existingText)\nEvent number \(eventNumber) was viewDidAppear"
eventNumber += 1
}
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if let existingText = happened.text {
happened.text = "\(existingText)\nEvent number \(eventNumber) was viewWillDisappear"
eventNumber += 1
}
}
override func viewDidDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if let existingText = happened.text {
happened.text = "\(existingText)\nEvent number \(eventNumber) was viewDidDisappear"
eventNumber += 1
}
}
}
如果我切换视图控制器,标签文本不会改变。
"(existingText)\n事件编号 (eventNumber) 是 viewWillDisappear"
因为在上面的文本中你使用了 "\n" ,所以它在下一行显示文本 label.Please 检查你的标签的 numberOfLines 。如果它是 1 那么它不会显示,因为文本在第二行
您需要添加
happened.numberOfLines = 0
在你的 viewDidLoad() 中。这将确保 UILabel 可以有多行文本。
viewDidLoad()中的代码:
override func viewDidLoad() {
super.viewDidLoad()
happened.numberOfLines = 0
if let existingText = happened.text {
happened.text = "\(existingText) \n Event number \(eventNumber) was viewDidLoad"
eventNumber += 1
}
}