【问题标题】:Create TableView objects with UI or programmatically?使用 UI 或以编程方式创建 TableView 对象?
【发布时间】:2015-09-25 14:09:23
【问题描述】:

谁是最佳优化方式?

使用情节提要在我的 UITableView 中创建对象(拖放到我的单元格中),还是以编程方式创建对象(cellForRowAtIndexPath)?

当项目在设备中编译运行时,这两个选项哪个运行得更快?

【问题讨论】:

  • 试试看哪个更快。
  • @maddy 我怎样才能做到这一点并在控制台日志上以秒为单位显示结果?
  • init... 方法和viewDidAppear: 末尾获取当前时间。
  • 为什么重要? iPhone 是不是太慢了以至于用户会注意到任何差异?没有。

标签: ios uitableview storyboard


【解决方案1】:

就纯粹的性能而言,代码创建的 UI 对象比任何 nibs / storyboards 对象都快,只是因为 storyboards 和 nibs 文件存储在磁盘上,直到它们被加载到内存中并被转换为 UIKit 对象。

话虽如此,这还取决于您如何实施它。如果您在故事板中使用原型单元格而不是每次在 cellForRowAtIndexPath 中创建单元格,那么故事板会因为重用单元格而获胜(尽管您也可以重用代码创建的单元格)。

再说一遍,通过代码创建 UI 所获得的性能优势非常小,甚至无法被人眼察觉。因此,对我来说,使用情节提要很容易在不污染代码的情况下创建界面。

您可以在此处看到一篇不错的文章:http://www.toptal.com/ios/ios-user-interfaces-storyboards-vs-nibs-vs-custom-code。这篇文章大约是。 1岁,但它仍然是准确的。

【讨论】:

    【解决方案2】:

    相同布局的有效性能相同。我会根据不同的需求选择一种方法。

    Storyboard 原型单元可以更快地设置,更容易让 Autolayout 约束正常工作,但您不能在 Storyboard 之外重复使用该原型单元。如果需要在多个视图中使用相同的单元格布局,则需要在代码中编写表格视图单元格或使用 nib 文件。

    另外,应该指出cellForRowAtIndexPath 在使用 Storyboard 原型单元格来配置单元格时仍然需要,假设您有某种动态数据要显示。同样,在编程方法中,您不应该在cellForRowAtIndexPath创建视图,而是配置它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多