Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在设置动画之前获取两个CGPoint之间的值(uiscrollview)_Ios_Objective C_Animation_Uiscrollview - Fatal编程技术网

Ios 在设置动画之前获取两个CGPoint之间的值(uiscrollview)

Ios 在设置动画之前获取两个CGPoint之间的值(uiscrollview),ios,objective-c,animation,uiscrollview,Ios,Objective C,Animation,Uiscrollview,对不起,我的英语很差 在我的工作中,我们制作了一个将高分辨率图像显示到UIScrollVIew的应用程序。此外,用户可以播放一个MP3,从一秒钟开始为UIScrollView的位置和缩放设置动画,并以特定的持续时间显示MP3所谈论的图像细节。目前,音频从第二个0连续播放到最后。播放MP3时,用户无法与UIScrollView交互 现在我们希望用户可以在播放时更改当前时间,我不确定当用户在一个动画中间选择第二个位置时如何计算位置 例如: 第二个1:持续时间4;第二个8:持续时间2;第二阶段20持续

对不起,我的英语很差

在我的工作中,我们制作了一个将高分辨率图像显示到UIScrollVIew的应用程序。此外,用户可以播放一个MP3,从一秒钟开始为UIScrollView的位置和缩放设置动画,并以特定的持续时间显示MP3所谈论的图像细节。目前,音频从第二个0连续播放到最后。播放MP3时,用户无法与UIScrollView交互

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

例如:

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

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

我们使用uiview动画(animateWithDuration)和来自UIScrollView的zoomToRect(动画:否)方法

我不知道如何计算这些中间值


谢谢。

我不知道我真的理解你是对还是错。但可以将动画进度设置为与动画的起点和总持续时间相关的进度值。即。就你而言

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];

感谢您的回复,但我认为NSAnimation是MacOS独有的,在iOS框架中不存在。哦,对不起,我没有注意到这一点。