0

我有一个正在制作动画的 UISLider - 在 91.0 秒内穿过屏幕。我希望能够停止动画点。

编码:

 [UIView animateWithDuration:91.0
        delay:0.0
        options:UIViewAnimationOptionRepeat|
                    UIViewAnimationOptionAllowUserInteraction|
            UIViewAnimationOptionBeginFromCurrentState
        animations:^{[UIView setAnimationDuration:91.0];
                 [myUISlider setValue:91.0];}
            completion:nil];

    [UIView commitAnimations];
  • 停止动画的一种方法是设置一个新值。但是,我无法在动画期间读取滑块的当前值/位置。访问 mySlider.value 时,我得到目标值(动画将结束的位置,即 91。

我做了一些挖掘,发现了一个触发动作方法的连续标志,默认情况下设置为 YES。来自开发者参考:

“...如果是,滑块将更新事件连续发送到关联目标的操作方法...”。

但是,这里的值又是 91.0...

感谢您的时间。

你的,

〜尼尔。

4

1 回答 1

0

如果您向 UISlider 的图层询问它的-presentationLayer,然后您可以询问该图层的副本以获得近乎实时的动画属性。从CALayer 文档

返回包含当前事务开始时所有属性的图层副本,并应用任何活动动画。

于 2010-10-04T16:41:52.470 回答