我有以下代码,用于创建 slider 和标签并将其添加到 View 中。一旦我移动 slider ,它就会在 AppDelegate 类中给出 SIGABRT 并进入无限循环。我不明白我做错了什么(如果我只添加 slider ,它就可以正常工作)
class test: UIView {
var value: Float
override func drawRect(rect: CGRect) {
self.addSubview(getSlider())
self.addSubview(getLabel())
}
override init(frame: CGRect) {
value = 0.9
super.init(frame:frame)
}
func getSlider()-> UISlider {
let slider: UISlider = UISlider(frame: CGRectMake(10,10,self.frame.width,30))
slider.addTarget(self, action:"change", forControlEvents:UIControlEvents.ValueChanged)
return slider
}
func getLabel()-> UILabel {
let label = UILabel(frame: CGRectMake(10,50,50,50))
label.text = "\(value)"
return label
}
func change(sender: UISlider) {
value = sender.value
}
最佳答案
如果您的函数需要一个值,则在引用它时需要添加 :
。
slider.addTarget(self, action:"change:", forControlEvents:UIControlEvents.ValueChanged)
关于ios - UISlider和UILabel导致无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42028418/