动画平移手势

发布于 2024-11-26 15:07:00 字数 359 浏览 0 评论 0原文

我写了一个 UIView 的子类,它在 drawRect: 中绘制自己。它实际上类似于电影的一天时间线 - 它用刻度和时间文本标签绘制时间轴。它可以放大至秒,缩小至 24 小时。当它放大时,可以用平移手势滚动它。那么问题来了:我如何实现简单的动画,当手指抬起时,时间轴继续滚动一段时间然后停止(负加速度)?

我想到了两个想法:

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

还有其他想法吗?

i have wrote a subclass of UIView, which in drawRect: draws itself. it is actually something like day-long timeline for movie - it draws time axis with ticks and time text labels. it can be zoomed in up to seconds and zoomed out up to all 24 hours. when its zoomed in, it could be scrolled with pan gesture. so here is the question: how can i implement simple animation, when the finger is lifted, timeline continues to scroll for a while and then stops (with negative acceleration)?

two ideas comes to my mind:

  1. implement animation by myself using another thread
  2. make new class - a subclass of CALayer and then use CABasicAnimation. add this class to the layers of my view. but here i should totally move all my code written for view to new subclass of CALayer, what i dont want to do. would it be ok?

any other ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

℉服软 2024-12-03 15:07:00

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

Wouldn't it be easier to integrate the view in a UIScrollView, let that handle the scrolling and zooming and let your class just do the drawing?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文