2012-07-31 98 views
0

我正在尝试以下操作:在图像上缩放动画

我有一个显示图像的视图。我已经实现了pinchgesturerecognizer来放大/缩小。我如何做动画并以与用户放大图像相同的速度和相同位置的方式完全显示图像。例如,如果我放大右上角,图像应该以右上角以相同速度缩放。

在此先感谢

+0

重放,如同在用户捏的时候不是_not_?如果是这样,动画每一刻的速度或持续时间相同? – 2012-07-31 05:09:23

+0

是,当用户正在捏时,最好在重放按钮的敲击下。速度可以均匀分布,但持续时间相同。 – nirvana74v 2012-07-31 05:58:51

+0

一旦你能够记录用户捏捏的地方和方式,重播它并不困难。它只是相似,但相反(应用价值,而不是记录它) – 2012-07-31 06:02:24

回答

0

我曾经也穹顶一些研究对同一种类的要求为我的项目之一。

我发现/完成的是:我已将图像视图添加到滚动视图。 然后,我已经设置了像max-min zoomScale,frame,delegate,userInteractionEnabled,scrollEnabled等所有滚动视图属性。

所以现在你不需要按照捏水平来管理,scrollview本身管理所有的缩放级别和滚动部分。

希望这会帮助你。

享受编码:)

+0

这个答案不符合我的要求。我需要能够通过某个功能执行缩放数据,以便视图中的图像以与用户相同的方式放大。 – nirvana74v 2012-07-31 06:40:51

0

您将不得不创建一个录音系统。当你开始在用户的绘图序列

记录当前时间戳:关闭我的头顶,你可以做这样的事情

NSTimeInterval STARTTIME = [NSDate的intervalSinceReferenceDate]

当用户捏和/或缩放时,记录从开始时间开始经过的时间以及您所做的更改的时间量。我建议建立一个变更记录数组,其中每个记录都有一个经过时间字段和新的缩放比例。

如果您将用户的更改作为离散渲染以不同大小绘制,只需记录并重播每个经过时间和新大小。

如果您在尺寸之间设置动画,请记录每个动画的时间间隔和时间偏移。

然后回放时,您需要遍历每条记录并使用计时器performSelector:withObject:afterDelay:或类似的东西在相同的时间间隔内执行相同的更改。