我正在尝试找出哪种方法更适合在视图中创建相同的控件。 假设我有一个UIview,我想在其中显示100个自定义控件。 每个自定义控件包含2个uiImageView和3个uiLabel。 现在有两种方法可以做到这一点:
使用此控件创建一个nib,其文件所有者是UIView并使用InitWithFrame加载它100次。 所以我有100个uiViews,每个5个控件= 600个uicontrols
以编程方式创建控件,所有这些都在同一个uiview上。 所以我有5 * 100 = 500个uicontrols。
所以似乎方法2在内存消耗方面更好,但它真的吗? 以及每种方法的加载时间如何?哪个更好?
谢谢
答案 0 :(得分:1)
创建控件的第二种方法更快。两种解决方案都必须创建控件,但第一种方法有解析NIB文件的开销。问题是:第二种方法的速度要快得多。并且:第一种方法是如此之慢,以至于它会影响您的特定应用程序?
以下是定时短期事件的良好代码示例:http://zpasternack.blogspot.com/2012/07/high-resolution-timing-in-cocoa.html
答案 1 :(得分:1)
我发现第三种方法是最好的: 使用UITableView创建视图。 这样你就可以使用uitable的重用功能了。 如果您不重用控件(因为可以重用其行),问题中建议的两种方法将在某些时候创建内存警告。