【问题标题】:iOS multiple XIB in a View Controller一个视图控制器中的 iOS 多个 XIB
【发布时间】:2014-09-03 17:48:59
【问题描述】:

我有一个显示 3 个自定义视图的视图控制器。我的问题是,为每个子视图创建一个 XIB 会更好吗?

有人告诉我,加载一个 XIB 文件真的很昂贵,所以最好只为视图控制器设置一个 XIB,并避免在该控制器中为自定义视图设置 XIB。但是,为了避免这种情况,我看到了自定义视图的代码约束(因为它们没有 XIB,也没有办法使用 IB),我不喜欢。这就是为什么我想知道为每个子视图创建一个 XIB 并设置然后使用 IB 设置约束是否很好(既是一种良好的做法,也是一种高效)。

提前致谢。

【问题讨论】:

    标签: ios xcode xib viewcontroller


    【解决方案1】:

    除非您计划销毁包含大量组件的视图并每秒重建它们多次,否则您不会注意到任何性能损失。如果你这样做,缓存它们。

    至于最佳实践(在我的选择中),您不使用 XIB 来提高效率,您主要使用它们是因为它们构建起来更快,并且如果您需要在以后重新访问视图时更容易理解。

    如果您无论如何都要在代码中使用 AutoLayout,我会尽可能使用 XIB,因为您可以获得上述优势。无论如何,布局引擎通常是昂贵的部分。

    希望这会有所帮助。

    【讨论】:

    • 谢谢马丁。那么布局引擎是否仅在使用 Autolayout/IB 时参与,或者如果我们通过代码设置它们?我不会那样做,因为你最终会得到很多行,而且很难弄清楚结果,但只是想知道通过代码而不是在 IB 上设置它们是否更有效(两者都是“旧的”和自动布局的)。
    • 如果在 xib 或代码中创建所有约束,它们都是相同的。我不会过多担心 AutoLayout 的“成本”,因为如果您需要非常定期地更新视图位置,即每帧,您通常只会看到 AutoLayout 和手动设置框架之间的区别。
    猜你喜欢
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多