2016-08-17 23 views
0

我已声明变量tipPercentage,UISlider操作tipSliderAction和UILabel tipPercentageLabel
我还创建了一个clear函数,这样,当我点击一个按钮时,以上所有内容都将重置为默认值。
下面是代码:
swift中的uislider值和变量,标签关联

var tipPercentage = 1 

@IBOutlet weak var tipPercentageLabel: UILabel! 

@IBOutlet weak var tipSlider: UISlider! 

@IBAction func tipSliderAction(sender: UISlider) { 
    let currentValue = Int(sender.value) 
    tipPercentageLabel.text = ("\(currentValue)") 
    let percentage = Double(currentValue)/100 
    tipPercentage = percentage 
} 

@IBAction private func clear(sender: UIButton) { 
    tipSlider.value = 10 
    tipPercentageLabel.text = String(tipSlider.value) 
    tipPercentage = tipSlider.value 

clear功能是我重置为默认值。我猜我的问题是,不是重新设置每个变量,而是重新设置一个变量,然后所有其他变量都会自动更新?
例如,在clear函数中,当我刚将tipSlider.value设置为10时,tipPercentageLabel.texttipPercentage将被更新,而我无需在clear函数中设置它们。
谢谢。

回答

1

您可以通过为您的UISlider的ValueChanged事件添加处理程序来完成此操作。

override func viewDidLoad() 
{ 
    super.viewDidLoad() 
    tipSlider.addTarget(self, action: #selector(ViewController.onValueChanged(_:)), forControlEvents: UIControlEvents.ValueChanged) 
} 

@IBAction func onValueChanged(sender: AnyObject) 
{ 
    tipPercentageLabel.text = String(tipSlider.value) 
    tipPercentage = tipSlider.value 
} 
+0

非常感谢。 –

1

它可以通过UISlider的ValueChanged事件来完成。

UIControlEvents.ValueChanged事件操作

@IBAction func onValueChanged(sender: AnyObject) 
{ 
    tipPercentageLabel.text = String(tipSlider.value) 
    tipPercentage = tipSlider.value 
} 

现在UISlider值设置为默认值的清除按钮操作会立即调用UISlider的行动的ValueChanged你重置所有值。

+0

非常感谢。 –