谁是最佳的优化方式?
使用storyboard在我的UITableView中创建对象(在我的单元格中拖放),或以编程方式创建对象(cellForRowAtIndexPath)?
当项目在设备中编译并运行时,哪两个选项运行得更快?
答案 0 :(得分:1)
相同布局的有效性能将相同。我会根据不同的需求选择一种方法而不是另一种方法。
故事板原型单元可以更快地设置,更容易使Autolayout约束正常工作,但你不能在其故事板之外重用那个原型单元。如果需要在多个视图中使用相同的单元格布局,则需要在代码中或使用nib文件编写表格视图单元格。
此外,应该指出的是,在使用Storyboard原型单元格来配置单元格时,仍然需要cellForRowAtIndexPath
,假设您要显示某种动态数据。同样,在程序化方法中,您不应该在cellForRowAtIndexPath
中创建视图,而是配置它们。
答案 1 :(得分:1)
就纯粹的性能而言,代码创建的UI对象比任何nib / storyboards对象更快,只是因为故事板和nibs文件存储在磁盘上,直到它们被加载到内存中并在UIKit对象中进行翻译。
话虽如此,它还取决于你如何实现它。如果你在故事板中使用原型单元格而不是每次在cellForRowAtIndexPath中创建单元格,那么故事板会因为重用单元格而获胜(尽管你也可以重用代码创建的单元格)。
再说一遍,通过使用代码创建UI所带来的性能提升很小,甚至不会被人眼察觉到。因此,对我来说,使用故事板是不容易创建界面而不污染您的代码。
你可以在这里看到一篇很好的文章:http://www.toptal.com/ios/ios-user-interfaces-storyboards-vs-nibs-vs-custom-code。这篇文章是约。 1岁但仍然准确。