2011-08-30 97 views
5

我有一個UItableview我爲其編程部分標題&頁腳。UITableView部分頁腳滾動時重疊

起初,我對滾動與sectio頭重疊的問題,我使用scrollViewDidScroll委託作爲

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    heightForHeader = 40.0; 
    if (scrollView.contentOffset.y<=heightForHeader&&scrollView.contentOffset.y>=0) { 
     scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0); 
    } else if (scrollView.contentOffset.y>=heightForHeader) { 
     scrollView.contentInset = UIEdgeInsetsMake(-heightForHeader, 0, 0, 0); 
    } 
} 

現在接下來的問題是與滾動時被重疊部分頁腳解決。

你能幫我嗎?

回答

4

您是否爲頁眉和頁腳設置了自定義高度?

你的表視圖代表應實現此方法:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section 

應返回適當的值。

如果您返回較小的值,然後您的頁眉和頁腳視圖有,則它們可能會重疊。

1

您正在尋找這樣的:我已經測試它和它的作品

 
    CGFloat sectionFooterHeight = 40; 
    CGFloat tableViewHeight = self.tableView.frame.size.height; 

    if (scrollView.contentOffset.y=tableViewHeight) { 
     scrollView.contentInset = UIEdgeInsetsMake(0, 0,-scrollView.contentOffset.y, 0); 
    } else if (scrollView.contentOffset.y>=sectionFooterHeight+self.tableView.frame.size.height) { 
     scrollView.contentInset = UIEdgeInsetsMake(0, 0,-sectionFooterHeight, 0); 
    } 

+0

我有標題和footer.and,因爲這是行不通的。我有類似的代碼頭滾動,我把'scrollviewDidScroll'放在代碼下面你的代碼。因此,scrollview無法正確滾動。任何建議? – Heena

+0

我會建議你製作三個不同的UITableviewCells,並使用其他兩個索引0和lastIndex代替頁眉和頁腳。 –

0

我跑進同類問題的今天小屏幕的iPhone。可能對於那些處理tableview的人來說,對於大頁眉/頁腳視圖的部分中的單元格數量較少會有幫助。

首先,頁眉和頁腳不會沿着單元格滾動,除非在滾動時沒有更多單元格可供查看。所以,如果你只有兩個或三個單元和一個大的頁腳視圖,那麼它肯定會超過一圈。解決此問題的一種方法是將頁腳視圖添加爲該部分的最後一個單元格。這只是我的工作。