滚动时UITableView节页脚重叠

时间:2011-08-30 03:02:52

标签: objective-c ipad

我有一个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);
    }
}

现在下一个问题是滚动时重叠的部分页脚。

你能帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:5)

您是否为页眉和页脚设置了自定义高度?

您的表视图委托应该实现此方法:

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

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

应返回适当的值。

如果您返回较小的值,那么您的页眉和页脚视图会有,那么它们可能会重叠。

答案 1 :(得分: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);
    }

答案 2 :(得分:0)

今天我遇到了与小屏幕iphone相同的问题。对于处理tableview的人来说,对于具有较大页眉/页脚视图的部分中较少数量的单元格可能会有所帮助。

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