无论如何创建一个带有一个通用页脚的 UITableView 吗?

Posted

技术标签:

【中文标题】无论如何创建一个带有一个通用页脚的 UITableView 吗?【英文标题】:Is there anyway to create a UITableView with one universal footer? 【发布时间】:2013-02-26 08:03:41 【问题描述】:

我正在尝试创建一个包含多个部分的UITableView。每个部分都有自己的页眉,但我正在尝试为整个表格视图制作一个通用页脚,该页脚保持在一个位置......

使用UITableViewDelegate 方法可以实现此逻辑吗?或者我应该创建一个自定义视图并尝试将其作为子视图添加到我的表格视图中?我目前拥有的页脚包含UIButton

如果有人有一些示例代码会很棒。

编辑:这个问题与引用的问题不同。我正在尝试制作一个浮动在UITableView 上方的通用页脚。另一个问题没有指定页脚的位置,只是需要一个页脚。

【问题讨论】:

你已经尝试了什么? 简单实现tableView:titleForFooterInSection,忽略section参数。 Matthias 会在每个部分之后添加页脚。 @NathanWhite - 现在我使用- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section添加了视图 我已经解决了我的问题,很乐意分享代码,但问题已被标记为重复。 【参考方案1】:

了解 UITableView 的 tableFooterView 属性。

现在是一些代码:(使用 ARC)

UILabel *footer = [UILabel alloc] init];
footer.text = @"Some text" ;
footer.backgroundColor = [UIColor greenColor];
self.tableView.tableFooterView = footer;

现在在整个 tableview 的底部有一个带有一些文本的绿色 UILabel。

【讨论】:

这几乎就是我要找的...我试过了,它在表格视图的最底部添加了一个页脚。我希望页脚保持“浮动”在同一位置(在UITabBarController 选择的正上方。我的表格视图很可能有 3-4 个部分,每个部分有 5-10 行,所以我不希望用户当他们需要点击UIButton 以转到下一个视图时,必须滚动浏览所有这些废话。 我不知道用我给你的方法可以做到这一点。我认为您将不得不在代码或 IB 中进行布局。全屏视图包含一个 tableview 和一个锁定在 FullScreeView 底部的 UIView。然后将桌子设置为容纳该区域的其余部分。【参考方案2】:

我最终创建了一个子视图并将我的按钮添加到该视图中。然后我将该视图作为我的“页脚”。

这是给我想要的结果的代码。

- (void)viewDidLoad


[super viewDidLoad];

//self.tableView.delegate = self;
//self.tableView.dataSource = self;

//save current tableview, then replace view with a regular uiview
self.tableView = (UITableView*)self.view;
UIView *replacementView = [[UIView alloc] initWithFrame:self.tableView.frame];
self.view = replacementView;
[self.view addSubview:self.tableView];

UIView *footerView  = [[UIView alloc] initWithFrame:CGRectMake(0, 370, 320, 45)];

//create the button
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
//button.userInteractionEnabled = YES;

//the button should be as big as a table view cell
//width of the button can be set but the width of the view it is added to will always match the width of the tableView
[button setFrame:CGRectMake(60, 0, 200, 45)]; 

//set title, font size and font color
[button setTitle:@"Build" forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont boldSystemFontOfSize:20]];   
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

//set action of the button
[button addTarget:self action:@selector(buildThenSegue)
 forControlEvents:UIControlEventTouchUpInside];

//add the button to the view
[footerView addSubview:button];
footerView.userInteractionEnabled = YES;

[self.view addSubview:footerView];
self.tableView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);

请注意,这是UITableViewController 的子类。

我在另一个问题上引用了这个答案:https://***.com/a/9084267/1091868

【讨论】:

以上是关于无论如何创建一个带有一个通用页脚的 UITableView 吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Codeigniter 中组合具有相同页眉和页脚的视图页面?

使用飞碟,如何在页脚的每一页上生成一个带有页码和总页数的 pdf?

在 iPhone 中显示带有页眉和页脚的 .doc 文件

将导出查询作为带有页眉和页脚的文本访问

在所有页面上打印带有页眉和页脚的 HTML 报告 - Firefox

将页脚的图像分配给 excel 文件而不是外部路径