有时候我们的需求需要头部悬停,首先我们想到的是设置tableView的style为UITableViewStylePlain,但是我们此时不需要footView悬停,那我们该怎么办?
我们可以设置tableView的contentInset属性
tableView.contentInset = UIEdgeInsetsMake(0, 0, -10, 0);
如果我们不需要headerView悬停,又不想改变tableView的属性怎么办?
可以利用ScrollView的代理来设置contentInset的值
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat sectionHeaderHeight = 44;
if (scrollView.contentOffset.y <= sectionHeaderHeight && scrollView.contentOffset.y >= 0)
{
scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
}
else if (scrollView.contentOffset.y >= sectionHeaderHeight)
{
scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
}
}
我们可以指定headerView悬停和不悬停,方法如上,但是要计算好偏移量
网友评论