滚动UITableView标头?

时间:2012-01-20 23:45:27

标签: iphone objective-c ipad uitableview header

我有一个自定义的UITableView标题,我希望能够在表格顶部滚动。通常标题会粘在表格的顶部,难道不能以某种方式改变滚动能力,以便它可以超越它并滚动表格中的单元格吗?

感谢。

7 个答案:

答案 0 :(得分:4)

如果这是您想要的行为,只需将header作为第一个单元格的内容。可以自定义所需的任何特定单元格。 UITableViewDelegate文档可以帮助您解决这个问题。
PS:使用tableView标题的重点是让它贴在窗口的顶部。

编辑:如果您必须按照自己的方式进行操作,那么您可以尝试这样做:通过设置tableView移动contentOffset一点点。例如:myTableView.contentOffset= CGPointMake(0,heightOfYourView)。现在在顶部添加yourView

答案 1 :(得分:4)

myTableView.tableViewHeader = myCustomTableHeaderView;

这会将myCustomTableHeaderView设置为表视图的标题,并且会使用表格视图滚动。

答案 2 :(得分:1)

通过为索引tableView:viewForHeaderInSection:的部分实现0,您可以将标题作为第一部分在滚动时消失。这样,它就不是整个UITableView的标题。

答案 3 :(得分:0)

如果整个表只有一个标题,那么你不能只设置tableHeaderView属性吗?

答案 4 :(得分:0)

您可能像我一样一直在搜索tableHeaderView属性。有关详细信息,请参阅this SO question

答案 5 :(得分:0)

您应该使用Grouped TableView Style并在ViewDidLoad方法中添加以下代码行:

myTableView.backgroundColor=[UIColor clearColor];
myTableView.opaque=NO;
myTableView.backgroundView=nil;

同样在nib文件中,您应该清除分组表的背景颜色;

答案 6 :(得分:-2)

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat sectionHeaderHeight = 40;//Change as per your table header hight
    if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {
        scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
    } else if (scrollView.contentOffset.y>=sectionHeaderHeight) {
        scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
    }
}