首先让我展示一下我在我的 ViewController
中设置了这个 UIImageView
:
每一行都包含一个用于正文部分的 UIButton
。如果我选择一个特定的按钮,它会适本地引导我。
我想做的是,当用户点击(但不松开)按钮时,我希望适当的 body 部位显示如下:
我可以使用 2 个选项来实现:
UIBuzierPath
类来绘制,但需要大量的试验和错误以及每个 body 部位的许多重叠形状才能像上一个问题中的相似那样很好地拟合:Create clickable body diagram with Swift (iOS)- 从原始图像中裁剪出突出显示的 body 部位,并将其放置在
UIImageView
上,具体取决于选择的UIButton
。然而,每个 body 部位只有一张图片,但仍然比选项 1 更简单。
现在,我的问题不是如何去做,而是在 cpu 处理和内存分配方面哪个是实现此目标的更好选择?
换句话说,我只担心我的应用程序滞后以及占用应用程序大小的存储空间。我不关心这需要多少时间,我只想确保我的应用在尝试绘制所有形状时不会卡顿。
谢谢。
最佳答案
这些方法中的任何一种都不太可能对 CPU 或内存产生任何重大影响。特别是如果在选项 2 中,您只需使用剪切图像的 alpha channel 并使它们成为半透明的有色叠加层。在 CPU/GPU 方面,这两种方法都不会使您低于 60fps 的最大屏幕刷新率(这是用户会注意到性能问题的方式)。在内存方面,将十几个贝塞尔曲线路径或单 channel 图像加载到 RAM 中与您现有的相比应该是九牛一毛,特别是在过去 5 年内发布的任何 iOS 设备上,除非是 Apple Watch。
请记住“过早优化是万恶之源”。除非您已经看到性能问题或有充分的理由相信它们会存在,否则您的时间最好花在其他问题上,例如使代码更具可读性、简洁性、可重用性等。请参阅维基百科中关于“何时优化”的简短部分: https://en.wikipedia.org/wiki/Program_optimization#When_to_optimize
关于ios - 哪个是在 Swift 中显示不规则形状的更好选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37036825/