Cocoa touch 动画平移手势

Cocoa touch 动画平移手势,cocoa-touch,calayer,quartz-graphics,cabasicanimation,Cocoa Touch,Calayer,Quartz Graphics,Cabasicanimation,我已经编写了UIView的一个子类,它在drawRect:中绘制自身。它实际上有点像电影的一天时间线——它用刻度和时间文本标签绘制时间轴。它可以放大到几秒钟,也可以缩小到24小时。当它放大时,可以用平移手势滚动。所以这里有一个问题:我如何实现简单的动画,当手指抬起时,时间线继续滚动一段时间,然后停止(以负加速度) 我想到了两个想法: 使用另一个线程自己实现动画 创建新类-一个CALayer的子类,然后使用CABasicAnimation。将此类添加到“我的视图”的图层中。但在这里,我应该将所有为

我已经编写了UIView的一个子类,它在
drawRect:
中绘制自身。它实际上有点像电影的一天时间线——它用刻度和时间文本标签绘制时间轴。它可以放大到几秒钟,也可以缩小到24小时。当它放大时,可以用平移手势滚动。所以这里有一个问题:我如何实现简单的动画,当手指抬起时,时间线继续滚动一段时间,然后停止(以负加速度)

我想到了两个想法:

  • 使用另一个线程自己实现动画
  • 创建新类-一个
    CALayer
    的子类,然后使用
    CABasicAnimation
    。将此类添加到“我的视图”的图层中。但在这里,我应该将所有为查看而编写的代码全部转移到
    CALayer
    的新子类,这是我不想做的。可以吗

  • 还有其他想法吗?

    将视图集成到一个UIScrollView中,让它处理滚动和缩放,让您的类只做绘图,不是更容易吗?

    您的意思是创建
    UIScrollView
    的子类吗?不,将您的自定义视图放在一个scrollview中,只是实现drawRect方法来重新绘制自己,但是滚动和缩放是由scrollview完成的。如果你只需要处理绘图,而不是所有其他的,这将是非常容易的。但是我的视图也必须响应缩放和滚动,以便正确地重新绘制自己,因为它的视觉表现取决于缩放级别。无论如何,我已经解决了我的问题,选择了变体1——由我自己实现。谢谢回复!