当前位置:  开发笔记 > IOS > 正文

UISlider设定值

如何解决《UISlider设定值》经验,为你挑选了1个好方法。

我有一个UISlider,我想将其值设置为1到10.我使用的代码是.

let slider = UISlider()
slider.value = 1.0
// This works I know that
slider.value = 10.0

我想要做的是为UISlider设置动画,以便需要0.5秒才能更改.我不希望它变得更加流畅.

到目前为止我的想法是.

let slider = UISlider()
slider.value = 1.0
// This works I know that
UIView.animateWithDuration(0.5, delay: 0.0, options: .CurveEaseInOut, animation: { slider.value = 10.0 } completion: nil)

我正在寻找Swift中的解决方案.



1> dfri..:

EDITED

经过一番讨论,我想我会澄清两个建议的解决方案之间的差异:

    使用内置的UISlider方法.setValue(10.0, animated: true).

    将此方法封装在一个UIView.animateWithDuration.

由于作者明确要求改变将需要0.5秒 - 可能由另一个动作触发 - 第二个解决方案是更喜欢.

例如,请考虑将按钮连接到将滑块设置为其最大值的操作.

@IBOutlet weak var slider: UISlider!

@IBAction func buttonAction(sender: AnyObject) {
    // Method 1: no animation in this context
    slider.setValue(10.0, animated: true)

    // Method 2: animates the transition, ok!
    UIView.animateWithDuration(0.5, delay: 0.0, options: .CurveEaseInOut, animations: {
        self.slider.setValue(10.0, animated: true) },
        completion: nil)
}

UIVIewController仅使用UISliderUIButton对象运行一个简单的单个应用程序会产生以下结果.

方法1:即时幻灯片(即使animated: true)

方法2:动画过渡.请注意,如果我们animated: false在此上下文中设置,则转换将是即时的.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有