我遇到UITableView
及其财产tableHeaderView
的问题。
我希望tableHeaderView
的行为类似于UISearchBar
,即内容偏移量应该是tableHeaderView。
当表格视图无法填充视图的框架时,设置contentOffset等并没有帮助。
这是当前行为的屏幕截图:
current behavior http://tubtub.de/export/now.png
我希望如何拥有:
desired behavior http://tubtub.de/export/desired.png
我在headerView
中插入viewDidLoad
,如下所示:
- (void)viewDidLoad
{
[super viewDidLoad];
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
headerView.backgroundColor = [UIColor redColor];
self.tableView.tableHeaderView = headerView;
}
非常感谢任何帮助或提示。谢谢!
编辑:我通过利用UIScrollViewDelegate和子类化UITableView使其工作。请在提供的github repo上查看。
答案 0 :(得分:1)
您可以使用setContentOffset:by headerView height。 只有当您的headerView高度有足够数量的数据时,才会发生此contentOffset。即)如果tableView不可滚动,因为屏幕截图中的数据很少,那么headerView仍然可见。但是,如果您有大量数据无法在屏幕上显示,则会有contentOffset。
尝试20行。你会明白我的意思。
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
headerView.backgroundColor = [UIColor redColor];
self.tableView.tableHeaderView = headerView;
[self.tableView setContentOffset:CGPointMake(0, 44)];
只有3行,这个contentOffset无法正常工作,在您的情况下可能会有所需的行为,因为当您有额外的空间可供显示时,您不想隐藏searchBar。
答案 1 :(得分:1)
答案 2 :(得分:0)
我会仔细检查表格本身的框架。通过将headerView的框架设置为从0,0开始,您指定它的原点应该位于为表格指定的视图的左上角。