是否可以使tableview部分标题与普通tableview中的单元格一起滚动?

时间:2009-08-30 04:36:55

标签: iphone uitableview scroll

在分组的表格视图中,部分页眉和页脚随单元格一起滚动。但是,在普通的桌面视图中,它们固定在屏幕的顶部和底部,直到到达下一部分。

有没有办法覆盖此操作并使页眉和页脚与普通tableview中的单元格一起滚动?

谢谢!

3 个答案:

答案 0 :(得分:4)

在普通的tableview中,我很确定你无法改变节标题滚动的方式。

但是,你可能会得到类似的效果。如果你省略了部分标题,而是将标题放入该部分的第一个单元格中,那么它肯定会以你想要的方式滚动。

然后你必须做一些工作才能使第一个单元格看起来像是一个标题而不是另一个单元格。这将包括代表职能,如:

防止“标题”单元格被选中:

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath;

要更改“标题”单元格的外观:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

答案 1 :(得分:0)

是。我认为你想到的标题是截面标题/索引保留在单元格上,直到下一部分替换当前标题。

我正在考虑的标题会在您向下滚动时立即滚动屏幕,并且有一个类似的页脚在最后可见。 HEre是我用来设置标题的代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    highScoreData = [HighScoreData get];
    highScoresTable.tableHeaderView = highScoresTableHeaderView;
}

highScoresTableHeaderView是一个简单的视图(IBOutlet),在我的.xib中有一些标签。

@property (nonatomic, retain) IBOutlet UIView   *highScoresTableHeaderView;

答案 2 :(得分:0)

如果您不希望标题贴在顶部,则应使用“普通”UITableViewCells作为标题。

所以不要这样:

  

部分数量:2
  每个部分的细胞数:2

     
      
  • 第1节   
        
    • Cell 1a
    •   
  •   
  • Cell 1b
  •   
  • 第2节   
        
    • Cell 2a
    •   
    • Cell 2b
    •   
  •   

你会有这个:

  

部分数量:default(= 1)
  每个部分的细胞数:2个标题+ 2 * 2个细胞= 6

     
      
  • 单元格1 (之前看起来像标题的单元格Section 1
  •   
  • 单元格2(“正常单元格”以前为Cell 1a
  •   
  • 单元格3(“正常单元格”以前为Cell 1b
  •   
  • 单元格4 (之前看起来像标题的单元格Section 2
  •   
  • 单元格5(“正常单元格”以前为Cell 2a
  •   
  • 单元格6(“正常单元格”以前为Cell 2b
  •   

像这样,标题单元格无法滚动,您需要在tableView:cellForRowAtIndexPath:方法中决定选择哪个“单元格模板”,具体取决于indexPath

更新

另一种选择是将tableview样式更改为分组。那里的标题也不会粘在顶部。