2011-08-30 93 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的人来说,对于大页眉/页脚视图的部分中的单元格数量较少会有帮助。

首先,页眉和页脚不会沿着单元格滚动,除非在滚动时没有更多单元格可供查看。所以,如果你只有两个或三个单元和一个大的页脚视图,那么它肯定会超过一圈。解决此问题的一种方法是将页脚视图添加为该部分的最后一个单元格。这只是我的工作。