我有一個UIControl類,需要根據UIImageView位置進行一些計算,這個位置可以通過touchesBegan和touchesMoved(這個類中的所有東西)來移動。 比我想顯示它作爲我已經編程創建的UILabel。當變量發生變化時更新UILabel文本
class control : UIControl{
...
let leftControl: UIImageView = UIImageView(image: UIImage(named: "left-control"))
...
func leftValue() -> String{
var leftValue : String = "0.0"
leftValue = "\(leftControl.center.x)"
return leftValue
}
}
和我ViewController.swift
類的ViewController:UIViewController的{
let ctrl : Control = Control()
let leftLabel : UILabel = UILabel(frame: CGRect(x: 40, y: 300, width: 150, height: 30))
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
ctrl.frame.origin = CGPoint(x: 40, y: 400)
leftLabel.text = "\(ctrl.leftValue())" //displays only starting value
view.addSubview(slider)
view.addSubview(leftLabel)
view.addSubview(rightLabel)
}
我知道這是在viewDidLoad中裏面,所以它不能正常更新。我想知道有關scheduledTimer,但不知道它是否是好的解決方案。
關鍵值觀察 –
@AleksandrMedvedev志願更是一個Objective-C的功能。不過,在Swift中可能並不簡單。 – Losiowaty
@Losiowaty,KVO不是一個簡單的功能..永遠:) –