我刚刚在tableView的页脚中实现了“加载更多”按钮,但页脚始终与表格一起滚动。我的tableView的样式是UITableViewStylePlain。
请你能告诉我哪里出错了。
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
UIView *footerView = nil;
if(footerView == nil) {
footerView = [[[UIView alloc] init] autorelease];
footerView.backgroundColor = [UIColor clearColor];
UIButton *button = [[UIButton alloc] init];
button.layer.cornerRadius = 7;
[button setFrame:CGRectMake(10, 3, 300, 44)];
[button setTitle:@"Load 20 more" forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont boldSystemFontOfSize:20]];
[button setBackgroundColor:[UIColor whiteColor]];
[button.titleLabel setTextColor:[UIColor blackColor]];
[button addTarget:self action:@selector(load20More) forControlEvents:UIControlEventTouchUpInside];
[footerView addSubview:button];
[button release];
}
if ([songInfo count] > 20 && count < 100) {
return footerView;
}
else
return nil;
}
答案 0 :(得分:24)
首先,tableView:viewForFooterInSection
没有为表定义页脚,它为表中的部分定义了页脚。您可以在一个表中包含多个部分页脚。如果您的表只是一个部分,使用此方法将在功能上等同于添加表页脚,但它不应该是表的页脚。如果这是您想要的,那么使用实际的表页脚会更好一些,只需将视图分配给UITableView
的{{1}}属性即可实现。
但是,表格页脚(部分页脚和表格页脚)都可以与您的表格一起滚动。如果您希望实现一个粘贴在屏幕底部并且不会随桌面滚动的“页脚”,那么最好的办法是调整tableFooterView
小尺寸,为“页脚”腾出空间,然后添加一个新的视图,坐在你刚刚清除它的地方。这样,它就会固定到位,表格中的可滚动区域不会与“页脚”重叠。
答案 1 :(得分:0)
在这里,如果您使用表视图的内置委托方法,
tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView?
,
它会固定显示在视图底部,并且与表格视图的高度无关。即使您设置了tableView.tableFooterView?.isUserInteractionEnabled = true
,它也无法按您希望的那样工作。因此,作为解决方案,您必须在viewDidLoad()
上设置表尾视图(因为在此方法中设置了委托和数据源)。
let cell = tableView.dequeueReusableCell(withIdentifier: "MyFinanceTableViewFooterCell") as! MyFinanceTableViewFooterCell
tableView.tableFooterView = cell
这将如您所愿。