2016-05-04 26 views
0

让我表明我有这个UIImageView设立在我ViewController开始:这是在Swift中显示不规则形状的更好选择吗?

enter image description here

每一个线条的包含身体部位UIButton。如果我选择一个特定的按钮,它会适当地延续我。

什么了我喜欢做的是,当用户水龙头(但不释放)按钮,我想适当的身体部位,以显示这样的:

enter image description here

我能达到这个使用2种选择:

  1. UIBuzierPath类绘制,但需要占用大量的试验和错误和每个身体部位很多重叠的形状来获得前一个问题的similiar很好地拟合:Create clickable body diagram with Swift (iOS)
  2. 从原始图像中裁剪突出显示的身体部位,并将其放置在UIImageView上,具体取决于所选的UIButton。但是只会有每个身体部位的一个图像,但仍然不太麻烦,然后选择1

现在,我的问题不是如何做到这一点,但是这将是在CPU方面实现这一目标是更好的选择处理和内存分配?

换句话说,我只关心我的应用程序滞后以及占用应用程序大小的存储空间。我并不担心需要多少时间来完成它,我只想确保我的应用程序在尝试绘制所有形状时不会出现口吃。

谢谢。

+0

我知道这不是Swift,但您始终可以在html中制作图表并将其加载到WebView中。这不会占用任何CPU! – brimstone

回答

3

这些方法中的任何一种对CPU或内存都没有任何显着影响是非常非常不可能的。特别是如果在选项2中,您只需使用剪切图像的Alpha通道并使它们变为半透明有色覆盖图。 CPU/GPU方式,这两种方法都不会使您低于60fps的最大屏幕刷新率(用户会注意到性能问题)。在内存方面,将十几个贝塞尔路径或单通道图像加载到内存中应该是相对于现有内存而言的一个缩水,尤其是在过去5年内发布的任何iOS设备上,除非它是Apple Watch。

请记住,“过早的优化是所有罪恶的根源。”除非你看到性能问题或者有充分理由相信它们会存在,否则你的时间可能会更好地花在其他问题上,比如让代码更具可读性,简洁性和可重用性等。请参阅维基百科关于“何时优化”的简短部分:https://en.wikipedia.org/wiki/Program_optimization#When_to_optimize

1

Xcode内置了测试功能(也包括性能测试),所以最好的方法是对一个身体部分尝试两种方法并比较结果。

您可能会发现第二种方法有点慢,但不足以让用户注意到,同时更容易实现。

快速启动测试here

性能测试here