在制作动画之前获取两个CGPoint之间的值(uiscrollview)

时间:2017-04-25 14:43:21

标签: ios objective-c animation uiscrollview

抱歉我的英语很差。

在我的工作中,我们制作了一个应用程序,将高分辨率图像显示在UIScrollVIew中。此外,用户可以播放一个MP3,它可以在一秒钟内显示UIScrollView的位置和缩放,并显示MP3正在谈论的图像细节。目前,音频播放从第二个0到结束。播放MP3时,用户无法与UIScrollView进行交互

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

示例:

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

如果用户选择第二个24,我们希望在6秒内制作动画,但请记住UIScrollView自原始动画后20到24秒应具有的原始位置。

我们正在使用uiview动画(animateWithDuration)和UIScrollView中的zoomToRect(animated:NO)方法

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

感谢。

1 个答案:

答案 0 :(得分: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];