如果您可以选择使用核心图形或可伸缩的UIImage(假设两种方法都可以)在iOS应用中渲染图形,您会使用哪种?有什么优点和缺点是以另一种方式做到这一点?
答案 0 :(得分:1)
UIImage
使用CoreGraphics(或者CoreAnimation)非常有可能。您可以自己做同样的工作,也可能犯错,或者您可以利用UIKit
经过充分测试的实施。另一个潜在的优势是使用UIImage
可能会产生非明显的性能优势。例如,与OS X不同,您无法在iOS上手动创建由CGContext
支持的IOSurface
,但由于能够使用私有API,UIImage
可能会这样做做好自己的工作。 (真正好奇的可以使用调试器或dtrace
调查UIKit正在做什么。)
简而言之,使用最高级别的抽象来完成工作(UIKit是比CoreGraphics更高级别的API。)如果UIImage
的拉伸绘图例程为您完成工作,我可以想到几个不使用它们的理由。我可以设想不使用UIImage
例程的一个潜在原因可能是您正在开发一个旨在在OS X和iOS上运行的跨平台库。
PS:“在低级别API中执行此操作的速度令人无法接受”将在我的脑海中被视为“而不是完成工作”,但你可以'我不知道这两种方式和测量。