UITableView,让页脚停留在屏幕的底部?

时间:2013-08-04 21:24:04

标签: iphone objective-c cocoa-touch

我有一个带有页脚的UITableView,在自定义视图中填充了tabBar,使用以下代码完成:

- (CGFloat)tableView:(UITableView *)tableView
heightForFooterInSection:(NSInteger)section {
    //differ between your sections or if you
    //have only on section return a static value
    return 49;
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {

    if(footerView == nil) {
        //allocate the view if it doesn't exist yet
        footerView  = [[UIView alloc] init];
        [footerView addSubview:self.tabBarView];
    }

    //return the view for the footer
    return footerView;
}

哪个工作很可爱,除了当表格的行数少于填充屏幕所需的行数时,这会导致页脚向上移动,因为桌子不再创建空行,因为有一个页脚。 / p>

那么,有没有人知道如何将自定义页脚锁定到屏幕底部,或者让tableView像以前一样创建空行?

谢谢!

加雷

2 个答案:

答案 0 :(得分:3)

不幸的是,除了一些视图层次结构欺骗之外,我认为没有一种简单的方法可以做到这一点。当UITableView的contentSize小于帧大小时,您可以将页脚视图分配给self.view并手动定位。当UITableView的contentSize大于帧大小时,使用viewForFooterInSection。如果这不清楚,或者您想看一些关于如何执行此操作的示例代码,请告诉我。

答案 1 :(得分:1)

我对uitableview控制器有同样的问题,我通过在窗口中添加视图并在viewWillDisappear中删除此对象来解决此问题。

My Solution link