代码之家  ›  专栏  ›  技术社区  ›  RickiG

具有最顶端的可查看单元格功能的模式“设置”单元格

  •  0
  • RickiG  · 技术社区  · 15 年前

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

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

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

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    
        return [self.productListFiltered count] +1;
    }
    

    要返回count加1,这会给我一个额外的单元格。 然后,我将必须遍历cellForRowatindexPath、didselectRowatindexPath等所有表视图的委托方法,并在indexPath.row==0时执行异常。 它必须解开控制器的谜团,但有太多的例外情况,它将是不可读的。

    我还可以尝试更改我的模型数组,因此每次为我的TableView设置数据源时,我都会将NSarray设置为NSmutableArray,并首先填充一个“空”对象。

    这也会提供一些奇怪的代码,因为我只需要将所有异常代码移动到我的CustomTableCellView(一个我添加到单元格子视图中的自定义视图)。根据数据是否被过滤,我经常从不同的地方填充TableView。

    将一个子视图附加到它自己的TableView顶部,这可能是一个更好的方法吗?但是我该怎么做才能让用户有可能把它放到屏幕上呢?

    我很难找到一个合理的方法来解决这个问题,这是一种不符合“最佳实践”的方法。

    希望有人能提供一些指导。 谢谢您。

    1 回复  |  直到 15 年前
        1
  •  1
  •   TechZen    15 年前

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