【发布时间】:2017-09-24 11:49:25
【问题描述】:
我有一个 UIControl 类,需要根据 UIImageView 位置进行一些计算,这些位置可以通过 touchesBegan 和 touchesMoved(该类中的所有内容)移动。 比我想将它显示为我以编程方式创建的 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
类视图控制器: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 中,所以它没有正确更新。我想知道 scheduleTimer 但不知道它是否是好的解决方案。
【问题讨论】:
-
键值观察
-
@AleksandrMedvedev KVO 更像是一个 Objective-c 特性。虽然在 Swift 中是可能的,但并不简单。
-
@Losiowaty,KVO 并不是一个简单的功能......曾经:)
标签: ios swift uilabel uicontrol