使用原型单元格,我需要在表格视图底部添加页脚视图,以便用户在滚动到表格视图底部时可以看到此页脚视图。因此,创建了一个带有一个屏幕、表格视图和两个原型单元的演示项目。寻找一种如何使用 Interface Builder 将某些视图拖放到表格下方的方法。问题是视图看起来被放在表格视图内容之外,所以我看到了页脚,但我无法滚动到它(在表格视图的底部只能看到一小部分页脚视图)。
我知道这应该可行,因为已经看到了一个可行的实现,但无法弄清楚我需要添加什么魔法设置或代码行。
以下是方法:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section {
return 2;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
CGFloat rowHeight = 10;
switch (indexPath.row) {
case 0: {
rowHeight = 376;
break;
}
case 1: {
rowHeight = 105;
break;
}
}
return rowHeight;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.row) {
case 0: {
Cell1 *cell1 = [tableView dequeueReusableCellWithIdentifier:@"Cell1" forIndexPath:indexPath];
return cell1;
break;
}
case 1: {
Cell2 *cell2 = [tableView dequeueReusableCellWithIdentifier:@"Cell2" forIndexPath:indexPath];
return cell2;
break;
}
}
return nil;
}
只需制作带有两个不同高度单元格的 2 行表。Cell1 和 Cell2 类是 UITableViewCell 的空子类。
以下是界面生成器中表格视图和单元格的外观:
这是启动后的初始视图:
这是我滚动到底部时看到的内容:
页脚在那里,但在表格视图之外(滚动内容)。如您所见,默认情况下,表格视图在底部为页脚保留了一些 44 像素的空间。但是,如果我在 tableView:heightForFooterInSection: 中设置页脚高度,则会出现空格。
此外,尝试将此视图拖动并向上移动到 IB 中的视图层次结构,因此该视图将成为标题视图。在这种情况下,视图在顶部显示为标题视图,但是当滚动到底部时,第二个单元格仅部分显示。看起来表格计算了显示原型动态单元格所需的空间(为表格视图设置了“动态原型”)。如果您向界面构建器添加额外的页脚或页眉视图,那么单元格的空间就会减少(如果将视图添加为页眉)或页脚不会显示。
更新。如果我添加此方法,则会出现空格:
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 50;
}
这是我在这种情况下得到的(cell2下方的空格):
如果我禁用自动布局, UPDATE2页脚将正确显示。