代码之家  ›  专栏  ›  技术社区  ›  jantimon

使用.xib文件提供iPhone应用程序的GUI是否会降低性能?

  •  13
  • jantimon  · 技术社区  · 17 年前

    3 回复  |  直到 9 年前
        1
  •  26
  •   Rory Blyth    16 年前

    (注意:在我的手机上点击这个,所以我提前为任何奇怪的格式或语法道歉——如果有问题,我会在回到笔记本电脑前解决的。)

    我做了一些快速、肮脏、非常非正式的测试来亲自验证这一点,以下是我的发现(请注意,我为测试构建的应用程序只是草稿,不一定代表“真实”的应用程序):

    • 对于所有后续屏幕,手动编码UI时性能都会提高

    创业问题让我很困惑,但我认为这是因为苹果,作为苹果,痴迷于创业时代(在一个 好 当然,方法)只是优化了手机的无存档器,使其从存档(nib)加载

    此外,由于iPhone的用户界面非常特定于iPhone(令人惊讶!),手工编写用户界面并不像编写桌面应用程序那样困难。你一遍又一遍地使用相同的UI组件——一旦你掌握了这一点,在代码中创建UI就很容易了。你没有80亿个小部件可供选择,就像你开发Windows/OS X/任何应用程序一样。iPhone的一致性使其成为我多年来在手工编码UI方面开发的最简单的平台。

    另一次我 总是 每当我使用动态表时,都会手动编写代码UI。如果我正在创建一个静态表——一个单元格基本上永远不会改变的表——尖头是可以的。对于任何其他类型的表,尤其是那些有缩略图和其他资源密集型位的表,我在手工编码时获得的控制可以获得基于nib的表单元格无法获得的性能。为此,你

    需要 将UI拆分为多个文件。也就是说, 不要 将应用程序的整个UI整合到一个笔尖中。当笔尖被加载时,它是

    进一步澄清:如果你有一个有五个视图控制器的应用程序,请将每个控制器粘在自己的笔尖上。在需要之前,你不想加载任何东西。当然也有例外,但这就是编码的方式——只要有足够的时间,你就会找到一个理由“以错误的方式”做某事,但a-nib-for-each-screen方法是你应该做的方式,除非你有充分的理由不这样做。

    • 初创公司 用笔尖更快(只要你保持笔尖尽可能简单,保持 只有你需要的 在里面)。

    • 启动后,手工编码UI的性能似乎有所提高。

        2
  •  16
  •   mahboudz    17 年前

    很少。也有一些例外。例如,如果您使用xib加载进入UITableViewCell的图像,那么这可能是一个问题,因为具有许多单元格的UITableViews对加载时间很敏感。然而,无论出于何种目的,都不应该有明显的性能下降。

    xib中的信息确实必须在运行时解码并加载到内存中,这不如直接以编程方式创建UI元素快。

        3
  •  7
  •   NSResponder    17 年前