【iOS】TableView的footerView不隨cell滾動而停留在tableView底部的問題,iostableviewfooter
蘋果官方給我提供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;}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。