2017-04-25 83 views
0

对不起,我的英文很差。在动画之前获取两个CG点之间的值(uiscrollview)

在我的工作中,我们制作了一个应用程序,它将高分辨率图像显示到UIScrollVIew中。此外,用户可以播放一个MP3,从一秒钟开始动画显示UIScrollView的位置和缩放,并显示MP3正在说明的图像细节。目前,音频从第二个0播放到最后。 MP3正在播放时,用户不能与UIScrollView交互

现在我们希望用户可以在播放时更改当前时间,但我不确定当用户选择第二个播放位置时如何计算位置的一个动画。

例如:

第二个1:持续时间4;第二个8:持续时间2;第二个20持续时间10;第二次31持续时间3;

如果用户选择第二个24,我们希望在6秒钟内动画,但要记住UIScrollView从原始动画开始的第二个20到24之后应该具有的原始位置。

我们正在使用的UIView动画(animateWithDuration)与zoomToRect(动画:否)从的UIS​​crollView

我不确定如何计算这些中间值的方法。

谢谢。

回答

0

我不知道,我是否真的让你对或错。但是,您可以将动画进度设置为与动画的起点和总持续时间相关的进度值。 I. e。在你的情况下

float animationStartPoint = 20.0; // Start of the animation 
float duration = 10.0;   // Its duration 
float partialStartPoint = 24.0; // user selected start point 

NSAnimation *animation = …; 
… 
animation.currentProgress = (partialStartPoint-animationStartPoint)/duration; 
[animation startAnimation]; 
+0

感谢您的回应,但我认为NSAnimation是独家MacOS,并不存在于iOS框架。 – maddavid

+0

哦,对不起,没有注意到这一点。 –