我正在尝试执行以下操作:
我有一个显示图像的视图。我已经实现了 pinchgesturerecognizer 来放大/缩小。如何制作动画并完全按照用户在相同位置以相同速度缩放图像的方式显示图像。例如,如果我在右上角放大图像应该在右上角以相同的速度放大图像。
提前致谢
我正在尝试执行以下操作:
我有一个显示图像的视图。我已经实现了 pinchgesturerecognizer 来放大/缩小。如何制作动画并完全按照用户在相同位置以相同速度缩放图像的方式显示图像。例如,如果我在右上角放大图像应该在右上角以相同的速度放大图像。
提前致谢
我也对我的一个项目的同类要求进行了一些研究。
我发现/完成的是:我已将图像视图添加到滚动视图中。然后我设置了所有的滚动视图属性,如 max-min zoomScale、frame、delegate、userInteractionEnabled、scrollEnabled 等。
因此,现在您不需要按捏合级别进行管理,滚动视图本身管理所有缩放级别和滚动部分。
希望这会帮助你。
享受编码:)
您将不得不创建一个记录系统。在我的脑海中,你可以做这样的事情:
开始用户绘制序列时记录当前时间戳:
NSTimeInterval startTime = [NSDate intervalSinceReferenceDate];
当用户捏合和/或缩放时,记录从开始时间经过的时间量,以及您对所有更改所做的更改。我建议构建一个更改记录数组,其中每条记录都有一个经过时间字段和新的缩放比例。
如果您将用户的更改绘制为不同尺寸的离散渲染,只需记录并重播每个经过的时间和新的尺寸。
如果您在大小之间制作动画,请记录每个动画的时间间隔和时间偏移量。
然后回放,您将遍历每条记录并在相同的时间间隔内执行相同的更改,使用计时器、performSelector:withObject:afterDelay: 或类似的东西。