我一直在面试iOS工作,并且已经收到很多关于自定义UI的问题,更具体地说是自定义UI按钮。我开始尝试阅读它,发现Core Graphics用于制作这些自定义按钮。
我想知道使用corE图形制作的自定义按钮的优势在于使用UIImage,以及在adobe或sketch上创建的图像,然后在其上放置UI按钮。除了对流程进行更多自定义之外,还有其他特定优势吗?
顺便说一下,我想知道是否有任何好的核心图形(Quartz 2d)教程用于obj-c,我已经找到了一个很好的数量与swift,但没有那么多与obj-c。
答案 0 :(得分:0)
有趣的是,这是一个面试问题!
您可以在PaintCode中设计按钮,将图形转换为代码。假设有Core Graphics,性能更好,无论设备大小如何,它都应该看起来很好。 PaintCode谈到了好处:“分辨率独立性和其他好处不再是@ 2x资源。未来的证明。创建动态的参数化绘图很容易。”
有关详细信息,请查看FAQ, Question 2。以下是前几段:
使用PNG图像绘制用户界面非常繁琐。 PNG图像是 不是与分辨率无关的,所以你必须为它提供许多变体 各种显示器。有些影响也很困难(如果不是 不可能)实现使用光栅图像。例如,你可能想要 用复杂的大小调整行为绘制一些东西,或者你可能想要 根据一些外部条件改变图纸的颜色。
比使用图像更好的方法是使用Objective-C或Swift 用于绘制用户界面的代码。代码与分辨率无关 并且非常灵活,因此它适用于各种显示器。
但是,在旁注中,我发现使用图像而不是PaintCode要容易得多。元素的定位,考虑到图像本身的插入与代码中的插入,在实践中引起了一系列问题。 PaintCode也使用弹簧和支柱来帮助调整不同设备上的图像大小,但是在将它与故事板中的布局约束相结合时必须要小心。你可以在PaintCode中做些事情来让你的生活稍微改善,但需要一些练习来真正掌握它。制作@ 2x和@ 3x版本的图像真的不是那么糟糕 - 所以如果你可以避免使用PaintCode,我只是为了避免头痛。