我有一个自定义的UITableView标题,我希望能够在表格顶部滚动。通常标题会粘在表格的顶部,难道不能以某种方式改变滚动能力,以便它可以超越它并滚动表格中的单元格吗?
感谢。
答案 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);
}
}