根据苹果公司的documentation,可以通过编程方式平稳地设置UISlider的值。我正在尝试从自定义视图控制器中执行此操作,UI是从故事板中定义的。
背景
在我的示例中,我正在尝试从自定义视图控制器中更新滑块的值,UI是从故事板中定义的。该示例仅呈现一个滑块。
当用户释放滑块时,该值将重置为
当用户释放滑块时,该值将重置为
0
。
代码
import UIKit
class ViewController: UIViewController {
@IBOutlet var mySlider: UISlider!
@IBAction func resetSlider() {
mySlider.setValue(0, animated:true)
NSLog("Reset!")
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
resetSlider
与Touch Up Inside
事件相关联。
问题
当调用resetSlider
时,界面上的值确实发生了变化,但是它没有进行动画(该值只是“跳”到0)。我的目标是让该值优雅地回到零。
注意:“Reset!”每次仅显示一次(每次点击),这表明resetSlider
并未被多次调用。
为什么这个UISlider不进行动画呢?
视频
由于IB非常直观,这里是一个视频,密码是code
setValue:animated:
不会执行动画,这可能是UIKit的一个bug。 - rob mayoff