【发布时间】:2013-05-29 10:45:47
【问题描述】:
我有一个继承自UITableViewCell 的类,它有一堆IBOutlets。我以前一直在以重用单元格并根据需要对其进行初始化的方式使用此对象。这个方法太慢了,所以我决定创建一个UITableViewCell对象的数组,然后根据需要添加到cellForRowAtIndexPath:方法中。
除了IBOutlet 对象外,一切都可以正常加载。 awakeFromNib 从未被调用,所以我认为这与我的问题有关。
为了澄清,当我在 cellForRowAtIndexPath 函数中初始化单元格时,它被正常调用了,只是当我试图在视图控制器 viewWillAppear 方法中预加载它们时,它会中断。
【问题讨论】:
-
无论你在做什么,我建议你停下来好好阅读
UITableView文档。 “创建 UITableViewCell 对象的数组,然后根据需要将它们添加到 cellForRowAtIndexPath: 函数中。”真的不是做事的方法。 -
你能解释一下为什么不吗?我的表中只有不到 10 个对象,因此预先加载它们应该不是什么大问题。
-
这不是
UITableView的工作方式。我觉得使用表格视图的常规方式太慢有点奇怪。我建议您使用分析器来查找真正占用时间的内容。 -
我很抱歉,但是链接到一个说明如何创建 UITableView 的页面并不完全有帮助。正如我在帖子中所说,我已经成功地创建了一种标准方式(如该链接中所述),并且工作正常。我现在要做的是预加载它们,为什么这是一件坏事?它目前唯一没有做的是链接到 nib 文件,其他一切正常,布局正确,滚动良好,我可以选择单个单元格。只是没有我在情节提要中定义的按钮或标签。
标签: ios xcode uikit xcode-storyboard awakefromnib