【问题标题】:Advantage of Custom UI buttons自定义 UI 按钮的优势
【发布时间】:2016-01-29 17:56:52
【问题描述】:

我一直在面试 iOS 工作,并且收到了很多关于自定义 UI 的问题,尤其是自定义 UI 按钮。我开始尝试阅读它,发现 Core Graphics 用于制作这些自定义按钮。

我想知道使用由 coreE 图形制作的自定义按钮比使用 UIImage 和在 adobe 或草图上创建的图像,然后在其上放置一个 UI 按钮有什么优势。除了更多的定制化过程之外,还有什么特别的优势吗?

顺便说一句,我想知道是否有任何关于 obj-c 的优秀核心图形(Quartz 2d)教程,我发现 swift 的数量很多,但 obj-c 的数量不多。

【问题讨论】:

    标签: ios objective-c core-graphics quartz-2d


    【解决方案1】:

    有趣的是,这是一道面试题!

    您可以在PaintCode 中设计按钮,将您的绘图转换为代码。据说使用Core Graphics,性能更好,无论设备大小,它都应该看起来不错。 PaintCode 谈到了好处:“分辨率独立性和其他好处没有更多的@2x 资源。未来的证明。创建动态的参数化绘图很容易。”

    有关详细信息,我会查看FAQ, Question 2。以下是前几段:

    使用 PNG 图像来绘制用户界面是乏味的。 PNG图像是 不是独立于分辨率的,因此您必须提供许多变体 各种显示器。有些效果也很难(如果不是 不可能)使用光栅图像来实现。例如,您可能想要 绘制具有复杂调整大小行为的东西,或者您可能想要 根据一些外部条件改变绘图的颜色。

    比使用图像更好的方法是使用 Objective-C 或 Swift 绘制用户界面的代码。代码与分辨率无关 并且非常灵活,因此它适用于各种显示器。

    不过,我发现使用图像比使用 PaintCode 要容易得多。元素的定位,考虑到图像本身的插图与代码中的插图,在实践中会导致很多问题。 PaintCode 也使用弹簧和支柱来帮助调整不同设备上的图像大小,但在将其与情节提要中的布局约束结合时必须小心。您可以在 PaintCode 中做一些事情来让您的生活更美好一点,但是需要一些练习才能真正掌握它的窍门。制作@2x 和@3x 版本的图像真的没有那么糟糕——所以如果你能避免PaintCode,我只是为了避免头痛。

    【讨论】:

    • 非常感谢,如果我可以投票,这将得到一个。
    • 您可以接受它作为答案,但无需投票。
    猜你喜欢
    • 2023-04-09
    • 2014-03-09
    • 2013-02-17
    • 2020-08-19
    • 1970-01-01
    • 2020-12-03
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多