使用 UI 或以编程方式创建 TableView 对象?

Create TableView objects with UI or programmatically?

谁的优化方式最好?

使用故事板在我的 UITableView 中创建对象(在我的单元格中拖放),或者以编程方式创建对象 (cellForRowAtIndexPath)?

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

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

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

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

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

话虽这么说,但这也取决于您如何实施它。如果您在情节提要中使用原型单元而不是每次都在 cellForRowAtIndexPath 中创建单元,那么情节提要会因为重用单元而获胜(尽管您也可以重用代码创建的单元)。

再说一遍,通过使用代码创建 UI 所获得的性能提升非常小,甚至接近于人眼无法察觉的程度。因此,对我来说,使用情节提要是在不污染代码的情况下轻松创建界面的明智之举。

您可以在此处查看有关此内容的精彩文章:http://www.toptal.com/ios/ios-user-interfaces-storyboards-vs-nibs-vs-custom-code。这篇文章大约是。 1 岁,但它仍然是准确的。