0

我试图找出哪种方法更好地在视图中创建相同的控件。假设我有一个 UIview,我想在其中显示 100 个自定义控件。每个自定义控件包含 2 个 uiImageView 和 3 个 uiLabel。现在有两种方法可以做到这一点:

  1. 使用此控件创建一个 nib,其文件所有者为 UIView,并使用 InitWithFrame 加载 100 次。所以我有 100 个 uiViews,每个有 5 个控件 = 600 个 uicontrols

  2. 以编程方式创建控件,所有这些都在同一个 uiview 上。所以我有 5 * 100 = 500 个 uicontrols。

所以看起来方法2在内存消耗方面更好,但真的吗?每种方法的加载时间如何?哪个更好?

谢谢

4

2 回答 2

1

创建控件的第二种方法更快。两种解决方案都必须创建控件,但第一种方法具有解析 NIB 文件的开销。问题是:第二种方法快多少。并且:第一种方法是否太慢以至于会影响您的特定应用程序?

这是一个用于计时短期事件的好代码示例:http: //zpasternack.blogspot.com/2012/07/high-resolution-timing-in-cocoa.html

于 2012-08-08T08:29:53.070 回答
1

我发现第三种方法是最好的:使用 UITableView 创建视图。这样,您将使用 uitable 的重用能力。如果您不重用控件(因为可以重用其行),问题中建议的 2 种方法将在某个时候创建​​内存警告。

于 2012-11-18T18:38:21.380 回答