为什么我的可重用UITableView标头单元格没有被重用?

时间:2015-05-07 17:30:45

标签: ios uitableview cocoa-touch

我已经实现了必要的代码,以利用可重用的标题视图,如此处接受的答案中所述   UITableViewHeaderFooterView in InterfaceBuilder

总而言之,我有一个NIB,它的类派生自UITableViewHeaderFooterView,我在viewDidLoad“forHeaderFooterViewReuseIdentifier”中注册了NIB,并在“viewForHeaderInSection”方法中将dequeueReusableHeaderFooterViewWithIdentifier注册。这一切都可以工作,编译和运行。

该代码与此屏幕中使用的UITableViewCell的典型使用/重用非常相似。如果我在两个dealloc方法(表格单元格和表格标题单元格)上设置断点,我会看到表格单元格被创建,重新使用,并且很少被解除分类。

对dequeueReusableHeaderFooterViewWithIdentifier的调用返回一个非零值,结果将作为viewForHeaderInSection返回。但是,每次在表上调用reloadData时,都会调用标头单元dealloc方法(对于每个标头单元)。表格单元格没有,换句话说,如果单元格行为是定义“重用”的标准,则标题单元格实际上不会被重用。或者,至少可以说标题单元不像单元那样重复使用。

Apple在“Table View Animations and Gestures”代码示例中提供了标头重用的示例。如果我将dealloc方法添加到它们的自定义头类中,则在调用table reloadData时会调用它。 (我在他们的类中添加了一个定时器,每隔10秒调用一次reloadData)

是否有人知道这是否是预期的行为,我误解了“重用”,或者Apple没有真正实现表格单元格中的标题单元格的重用行为?

谢谢

0 个答案:

没有答案