3

我需要在 UITableViewController 中的分组样式 TableView 的顶部(上方)有一个空闲区域。什么是顶?表视图的 NavigationBar 和 SectionTitle 之间的区域。

首先,我用

UIEdgeInsets inset = UIEdgeInsetsMake(60, 0, 0, 0);
self.tableView.contentInset = inset;

这在第一刻效果很好,正是我需要的。但是,如果我向下滚动 TableView,视图将移动到新的空闲区域。

跟...共事

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

似乎不起作用:(

有什么建议吗?

4

4 回答 4

4

表视图控制器的根视图表视图,因此您不能将内容放在其上方或下方,因为没有超级视图供您添加它们。

解决方案是改用 UIViewController 子类,您可以为此添加任意大小的表格视图,其上方和下方都有视图。没有涉及太多额外的工作——您必须声明您的视图控制器实现了委托和数据源协议,并在 IB 中连接这些出口,除此之外它与表视图控制器相同。

基本信息 - 你可以有一个没有 UITableViewController 的表格视图。

于 2012-07-21T16:10:12.857 回答
2

如果你的表是只读的,jrturton 就足够了。否则,您还需要将编辑调用从 UIViewController 传播到封闭的 UITableView,如下所示:

//In UIViewControler propagate call to tableView property
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
  [super setEditing:editing animated:animated];  
  [self.tableView setEditing:editing animated:animated];
}
于 2012-11-20T19:56:11.840 回答
0

您可以使用 table 的 headerView 属性创建一个具有所需大小的视图并将其放在 table 的标题视图中,它将为您提供您真正需要的内容。

您可以使用-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)sectiontableView 的委托方法来放置第一部分的标题视图。

快乐编码:)

于 2012-07-21T06:46:38.940 回答
0

所以你需要一个表格视图上方的空间,它在滚动时不会被表格视图覆盖?

与其玩弄表格视图,不如尝试在表格视图的UILabel顶部或在表格视图标题所在的位置添加一个。然后让表格视图的坐标从标签的正下方开始。这样,当您滚动时,空间,即;这里的标签,总是可见的。

这样做的原因是因为为 a 定义的所有内容UITableView,例如页眉或页脚,总是与表格相关联,并且不能单独操作。

于 2012-07-21T15:44:08.243 回答