蘋果官方給我提供TableView的FooterView和HeaderView停留在頂部的非常不錯效果,有時候我們不須要這些FooterView和HeaderView停留在底部或者上部,如今就以FooterView為例,說一下我開發中的解決方法:(眼下兩種)
第一種方法:在初始化TableView時將TableView的樣式設置為UITableViewStylePlain,同一時候重寫tableView的scrollViewDidScroll:(UIScrollView *)scrollView
詳細代碼例如以下:
UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStylePlain];</span>
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat sectionHeaderHeight = 10;//設置你footer高度
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);
}
}</span>
另外一種方法:在初始化TableView時將TableView的樣式設置為 UITableViewStyleGrouped,同一時候在UITableView的代理方法中,將FooterView的高度設置為一個很小(不留下可見空隙)的值,就好啦!(這里注意,不能設置為0,否者tableView會覺得你沒有設高度就會採取默認高度)
詳細代碼:
UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStyleGrouped];
tableView.delegate = self;
tableView.dataSource = self;</span>
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 0.0001f;
}
