在iOS7中,UISlider没有动画效果。

31

我从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个回答

64

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

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

似乎iOS 7不会执行动画,除非你同时指定这个块和animated:YES。 iOS 6.0似乎忽略了动画块并执行其自己的内部块。有点奇怪。指定2.0的持续时间,可以看到使用相同代码时,iOS 7比iOS 6慢两倍动画速度。


发现了这个解决方案,非常奇怪!但这就是正确的方法! - Alex Cio
1
是的,在iOS8中仍需要这样做。单独使用任一方法都不起作用。 - Sid
2
而且,在iOS 10中仍然存在问题。解决方法仍然有效。 - Nate

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接