滚动表格视图时,自定义UITableView页脚不会锁定在底部

时间:2014-03-11 06:00:15

标签: ios objective-c cocoa-touch uitableview

我检查了所有这些 UITableView, make footer stay at bottom of screen?

tableFooterView property doesn't fix the footer at the bottom of the table view

iOS - viewForFooterInSection sticking to bottom of UITableView

Proper way to implement a footer in UITableView

类似的问题,但不幸的是我的问题没有解决。

我必须使用里面的按钮实现自定义页眉和页脚视图。我用.nib文件创建了单独的UIView的子类。在我的视图控制器中,我正在调用这些方法来为页眉和页脚视图注册nib。

- (UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    CustomTableHeaderView *view = [CustomTableHeaderView header];
    view.delegate = self; //setting delegate to receive callbacks as the buttons inside the view are pressed
    return view;
}

- (UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    CustomTableFooterView *view = [CustomTableFooterView footer];
    view.delegate = self;
    return view;
}

自定义视图中的类方法注册.nib文件并返回视图。然而,实施是;

+ (CustomTableHeaderView*)header
{
    return [[[NSBundle mainBundle]loadNibNamed:@"CustomTableHeaderView" owner:nil options:nil]objectAtIndex:0];
}

页脚的类似实现。

问题是当表格视图滚动时,页脚视图不会锁定在底部。 i-e,当视图内部有更多行时,页脚视图会隐藏,并在所有行向下滚动直到结束时显示。我想锁定视图底部的页脚视图,无论有多少行可以滚动。 标题视图已经通过此实现完美实现,因为它在滚动行时被锁定在顶部,但页脚视图随行滚动。

我也尝试过self.tableview.tablefooterview属性,但它也没有帮助。

1 个答案:

答案 0 :(得分:2)

不幸的是,这不是表格页脚的工作方式。要在底部完成锚定视图,您需要手动将其作为子视图添加到UIView。

如果您将其作为子视图添加到UITableView,则需要通过更改scrollViewDidSroll:中的框架来保持锚定。如果您将其作为子视图添加到包含UIView的{​​{1}},则可以将其静态放置在底部。在任何一种情况下,您可能都希望调整表格视图的UITableView,底部有一个插图,这样您就可以将内容滚动到锚定的页脚上方。