【iOS】TableView的footerView不隨cell滾動而停留在tableView底部的問題



蘋果官方給我提供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;
}




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM