使最顶层的UITableViewCell具有“设置”单元格的模式

时间:2010-05-22 15:41:18

标签: iphone uitableview

如果不清楚我的标题是什么意思,我指的是Facebook应用程序中的功能,在“Feed”视图中最顶层的单元格是“加载新帖子”按钮,向上延伸“永远” 。你必须把它拉下来才能自己显示它。

背景 在我的情况下,我重新加载整个UITableView(普通样式)的数据作为搜索字段中的用户类型(这意味着相当频繁),然后让用户使用滑块过滤结果。此功能使我的数据源,数组和filteredArray有多个版本。

如果我以“快速”的方式实现功能,我会设置:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return [self.productListFiltered count] +1;
}

要返回计数加1,这会给我一个额外的单元格。 然后我将不得不通过cellForRowAtIndexPath,DidSelectRowAtIndexPath等所有tableView的委托方法,并在indexPath.row == 0时执行异常。 它必须用很多例外来控制控制器,以至于它是不可读的。

我也可以尝试更改我的模型数组,所以每次设置我的tableVIew的数据源时,我会将NSArray变成NSMutableArray并首先填充一个“空”对象。

这也会给出一些奇怪的代码,因为我只需将所有异常代码移动到我的CustomTableCellView(我添加到单元格的子视图中的自定义视图)。我经常从不同的地方填充TableVIew,具体取决于数据是否被过滤。

将子视图附加到表格的顶部可能是更好的方法吗?但是我该如何让用户将其拉到屏幕上呢?

我很难找到一个合理的方法来解决UITableView的“最佳实践”。

希望有人可以提供一些指导。 谢谢。

1 个答案:

答案 0 :(得分:1)

您应该只使用表格部分。搜索字段和控件放在一个部分中,数据放在第二个部分中。返回单元格时,只需要检查该部分,然后访问该部分的数据而不是另一部分。