【问题标题】:Best Practice for interactive 2D programming way in iOSiOS中交互式2D编程方式的最佳实践
【发布时间】:2012-12-29 02:42:04
【问题描述】:

我想创建一个图表应用程序,我可以创建一些形状。 每个形状都可以在画布中移动。 实施它的最佳方法是什么?现在我知道只有两种方式:

  1. 仅使用 UIView,在此 UIView 中绘制所有形状。当触摸事件 达到,重绘一切。
  2. 为每个Shape创建一个UIView,每个UIView可以独立响应UIEvent

还有什么好的方法吗?第一个太复杂了。第二个好像性能不好?

【问题讨论】:

    标签: ios canvas diagram quartz-2d draw2d


    【解决方案1】:

    两者都行,但各有利弊。具体来说:

    1. 单个UIView:这种方法需要您为每个形状创建一个CALayer,然后在移动形状时进行自己的点击测试和手指拖动。如果您有许多形状(确保使用索引查找来进行命中测试而不是 O(N) 搜索),这种方法将执行得更好,因为CALayers 是轻量级的。
      • 不要通过调用drawRect:,在单个UIView 中绘制当前位置的形状。这将执行非常糟糕,尤其是当您在拖动过程中移动形状时,并且正如您所指出的那样,实现起来非常复杂
    2. One UIView Per Shape:这种方法很容易编程,因为您不必进行命中测试并将触摸发送到被触摸的形状。如果您有几个形状(根据我的经验,

    【讨论】:

    • 谢谢,有帮助!一些2D游戏编程框架是怎么做的?
    猜你喜欢
    • 2019-09-18
    • 2010-10-08
    • 2011-11-12
    • 2011-04-07
    • 2020-09-19
    • 1970-01-01
    • 2020-07-22
    • 2016-06-09
    • 2016-01-19
    相关资源
    最近更新 更多