【发布时间】:2018-02-14 22:25:37
【问题描述】:
我正在创建一些简单的输入/输出内容。 我有一个函数可以计算一些东西并在文本字段中返回值。我想根据此计算值使用滑块更改文本字段中的值。假设我的函数返回值 4,76,滑块的最大值应该是 value*2 (= 9,52),最小值是 0。我的问题是我真的不知道应该如何创建滑块这会更改一个值,其中该值不是硬编码的。
@IBAction func slider(_ sender: UISlider) {
sender.value = Float(calculateWaterAmount())!
sender.minimumValue = 0
sender.maximumValue = sender.value*2
waterAmountTextField.text = String(sender.value)
}
函数calculateWaterAmount() 返回一个双精度值。滑块应该能够更改此函数的值并将其返回到文本字段中。
编辑: 所以基本上它应该看起来像这样slider with value。 将在文本字段中显示的值取决于函数 calculateWaterAmount() 中的公式,并且每次我使用不同的值调用该函数时,它显然应该返回不同的值,如果需要,滑块应该可以将显示的值更改为,比方说,一个介于 0 和 n*2 之间的值,其中 n = 计算值
【问题讨论】:
-
sender.value = xx不会再次导致值更改事件吗?你最好改用open func setValue(_ value: Float, animated: Bool) // move slider at fixed velocity (i.e. duration depends on distance). does not send action。 -
@Ryan 不,设置值不会调用任何更改事件。
-
@Ryan 嘿,谢谢您的回答,但这似乎不是我想要的。我已经更新了我的问题,所以最好理解
标签: ios swift user-interface uitextfield uislider