讓tableView的每個section的headerview隨tableview一起滾動

如何讓 UITableView 的 headerView跟隨 cell一起滾動

UITableView 的 headerView一般是隨着tableView的滾動懸浮在cell上的,但是有時候我們並不希望它是懸浮的狀態,那麼就要讓headerView能夠跟隨cell一起滾動。之前只有自己用用,並沒有做過總結,昨天有朋友問該怎麼解決我就搜索了一下這個問題,發現解決方案並不止一種,對於section只有一個的情況,我個人一直用的是方案3,也比較推薦這個方法,很簡單。在我的代碼中,我初始化了一個自定義的headerImageView,通過代碼

myTable.tableHeaderView =headerImageView;
將我的headerImageView給了tableview的headerView,這樣就成功達到了想要的效果。

在這裏進行總結備忘,方便以後查閱,也希望對用到此文的人有所幫助。


解決方案1:(適用於多個section的情況)

//去掉UITableView headerView黏性  要將tableview的style設置爲UITableViewStyleGrouped

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {  
    if (scrollView == self.myTableView)  
    {  
        CGFloat sectionHeaderHeight = YOUR_HEIGHT;  
        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);  
        }  
    }  
}


[原帖地址:http://www.cocoachina.com/bbs/read.php?tid-86162-page-1.html]


解決方案2:

設置 tableView的 style爲  UITableViewStyleGrouped,然後

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}

      這樣確實可以讓 headerView ,在滾動tableView的時候,跟隨着cell的內容一起滾動。但是,下面的cell都被加上了邊框 而且cell的水平顯示範圍變窄了。

解決方案3(!!!!推薦):

將UIView設置爲  整個tableView的headerView,而不是 section 0的headerView

  self.tableView.tableHeaderView=header;

  這樣,就可以完美的滿足 headerView跟隨cell的內容一起滾動的要求。

[原帖地址:http://blog.csdn.net/tangaowen/article/details/6452314]



解決footerView黏性的問題待整理





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章