【发布时间】:2016-01-03 22:17:54
【问题描述】:
我正在学习 Swift,并尝试使用 Slider 以编程方式更改 Label 值。我在 func 中收到一个错误,说 paybackLabel 是一个未解析的标识符。这应该怎么做?
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//Create Label
let paybackLabel = UILabel(frame: CGRectMake(0, 0, 300, 41))
paybackLabel.center = CGPointMake(190, 284)
paybackLabel.textAlignment = NSTextAlignment.Center
paybackLabel.font = UIFont(name: paybackLabel.font.fontName, size: 40)
paybackLabel.textColor = UIColor.whiteColor()
paybackLabel.text = "Hello World"
self.view.addSubview(paybackLabel)
//Create Slider
let paybackSlider = UISlider(frame: CGRectMake (45,546,310,31))
paybackSlider.minimumValue = 0
paybackSlider.maximumValue = 1000
paybackSlider.continuous = true
paybackSlider.tintColor = UIColor.blueColor()
paybackSlider.value = 500
paybackSlider.addTarget(self, action: "paybackSliderValueDidChange:",forControlEvents: .ValueChanged)
self.view.addSubview(paybackSlider)
}
func paybackSliderValueDidChange(sender: UISlider!)
{
print("payback value: \(sender.value)")
paybackLabel.text = "\(sender.value)"
}
}
【问题讨论】:
-
是的,实际上代码不应该编译,你必须在 viewDidLoad 之外声明 paybackLabel 作为 var 并在 viewDidLoad 中修改它,然后在 paybackSliderValueDidChange 中更改文本
-
请查看我给出的答案。如果它工作正常,请接受并支持我的回答。
标签: ios swift uilabel uislider