uislider值和变量,Swift

时间:2016-08-17 03:19:40

标签: ios swift uislider

我已声明了一个变量tipPercentage,一个UISlider Action tipSliderAction和一个UILabel tipPercentageLabel。 我还创建了一个clear函数,这样,当我点击一个按钮时,以上所有内容都会重置为默认值。
这是代码:

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中设置它们功能。
谢谢。

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:1)

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

UIControlEvents.ValueChanged事件操作

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

现在,在您的清除按钮操作中,将UISlider值设置为默认值,它将立即调用UISlider的ValueChanged操作,并重置所有值。