我需要在UITableViewController中的分组式TableView的顶部(上方)有一个免费区域。什么是顶级? NavigationBar和TableView的SectionTitle之间的区域。
首先,我用了
UIEdgeInsets inset = UIEdgeInsetsMake(60, 0, 0, 0);
self.tableView.contentInset = inset;
这在第一个时刻工作得很好,正是我需要的。但是,如果我向下滚动TableView,视图将移动到新的免费区域。
使用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
似乎不起作用:(
有什么建议吗?
答案 0 :(得分:4)
表视图控制器的根视图是表视图,因此您无法在其上方或下方放置内容,因为您没有要添加它们的超级视图。
解决方案是使用UIViewController子类,为此您可以添加任意大小的表视图,其中包含视图的上方和下方。没有太多额外的工作 - 您必须声明您的视图控制器实现委托和数据源协议,并在IB中连接这些插座,除了它与表视图控制器相同。
基本消息 - 您可以拥有一个没有UITableViewController的表视图。
答案 1 :(得分: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];
}
答案 2 :(得分:0)
您可以使用table的headerView属性创建一个具有所需大小的视图,并将其放在表格的标题视图中,它将为您提供您真正需要的内容。
您可以使用tableView的-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
委托方法为第一部分添加标题视图。
快乐编码:)
答案 3 :(得分:0)
所以你需要在Table视图上方留出一个空格,滚动时表格视图不会覆盖它?
只是尝试在表视图的顶部添加UILabel
,或者在表视图的标题所在的位置添加UITableView
,而不是使用表视图。然后使表格视图的坐标从标签的正下方开始。这种方式当你滚动,空间,即;这里的标签始终可见。
这样做的原因是因为为{{1}}定义的所有内容(例如页眉或页脚)始终与表关联,并且无法单独操作。