gpt4 book ai didi

ios - iOS中交互式2D编程方式的最佳实践

转载 作者:行者123 更新时间:2023-11-29 04:13:13 25 4
gpt4 key购买 nike

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

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

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

最佳答案

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

  1. 单个UIView:这种方法需要您为每个形状创建一个CALayer,然后进行自己的 HitTest 和手指测试移动形状时拖动。如果您有许多形状(请务必使用索引查找来进行 HitTest 而不是 O(N) 搜索),此方法的性能会更好,因为 CALayer 是轻量级的。
    • 不要采取通过单次调用 drawRect: 在单个 UIView 中的当前位置绘制形状的方法。这将执行极差,特别是当您在拖动过程中移动形状时,正如您所指出的,实现起来非常复杂
  2. 每个形状一个UIView:这种方法非常容易编程,因为您不必进行 HitTest ,并且触摸会发送到形状被感动。如果您有几个形状(根据我的经验,<30),这种方法效果会很好。如果您有大量形状,您就会开始看到帧速率问题。

关于ios - iOS中交互式2D编程方式的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14078246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com