UISlider在iOS7中没有动画

Posted

技术标签:

【中文标题】UISlider在iOS7中没有动画【英文标题】:UISlider not animating in iOS7 【发布时间】:2013-09-27 16:22:10 【问题描述】:

当我从 ios 6 切换到 iOS 7 设计时,我注意到使用 setValue:animated: 方法不再为滑动过程设置动画。有没有其他人遇到过这个问题并找到了解决方案?

我将添加一些代码来表明我没有做任何复杂的事情:

//Variable declaration
IBOutlet UISlider *s; //Connected in the .xib

//Button pressed
- (IBAction)buttonPressed:(id)sender

    [s setValue:1 animated:YES];

我按下按钮后它直接跳到1。

【问题讨论】:

【参考方案1】:

向后兼容 iOS 4 解决方案/解决方法:

[UIView animateWithDuration:1.0 animations:^
    [_sliderTest setValue:0.90 animated:YES];
];

iOS 7 似乎不会动画,除非您同时指定此块和动画:YES。 iOS 6.0 似乎忽略了动画块并执行了自己的内部块。有点奇怪。将持续时间指定为 2.0 可以看到 iOS 7 的动画速度是 iOS 6 的两倍,但代码相同。

【讨论】:

也找到了这个解决方案,太奇怪了!但这就是要走的路! 是的,您仍然需要在 iOS8 中执行此操作。单独使用任何一种方法都行不通。 而且,在 iOS 10 中仍然损坏。解决方法仍然有效。

以上是关于UISlider在iOS7中没有动画的主要内容,如果未能解决你的问题,请参考以下文章

UISlider 最小和最大轨道色调清除颜色 iOS 7.1 错误

在没有 Timer 的情况下播放核心动画时如何自动更新 UISlider 的值

iOS - 折叠动画 UISlider

没有图像的自定义 UISlider

UIBarButtonItem 中的 UISlider 影响动画行为

带有 alpha 的 UISlider 动画