如何隐藏表头,并在插入/删除后保持隐藏
Posted
技术标签:
【中文标题】如何隐藏表头,并在插入/删除后保持隐藏【英文标题】:how to hide table header, and keep it hidden after insert/delete 【发布时间】:2011-10-22 17:19:13 【问题描述】:我发现,UITableView 修改了contentSize
属性,我不能自己设置。
这是我的调用堆栈。在此调用 contentSize
被修改后。我不想要它,因为我想隐藏标题,所以我需要将视图向下滚动一点,并使其设置contentSize
比可见的高一点,以便能够向下滚动一点。
任何想法?隐藏我的意思是表格标题最初是“隐藏的”,但当您滚动到顶部时会显示出来。
我正在使用 NSFetchedResultsController
通过 CoreData 获取数据。
【问题讨论】:
【参考方案1】:你可以实现表头大小的tableview委托方法并返回0。它会是这样的:
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
return 0;
这会将每个部分的标题设置为零。您也可以使用heightForFooterInSection:
以相同的方式编辑页脚大小
【讨论】:
我知道如何自己隐藏/显示标题。想法是默认情况下将其保持“隐藏”,我的意思是默认情况下防止滚动到顶部,因为在顶部有标题视图,只有当用户有意滚动到顶部时才应该可见。我知道如何滚动隐藏它,但它会在插入/删除操作后显示,因为表会自行更改 contentSize 值。【参考方案2】:看起来 contentSize 是在调用 controllerDidChangeContent 之后被 ios 私有代码修改的。
仅作记录。这是我的解决方案(searchView 是我想隐藏的视图):
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
if (scrollView.contentSize.height <= scrollView.frame.size.height)
[scrollView setContentOffset:CGPointMake(0, self.searchView.frame.size.height)];
[scrollView setContentSize:CGSizeMake(scrollView.contentSize.width, tableView.frame.size.height + self.searchView.frame.size.height)];
【讨论】:
以上是关于如何隐藏表头,并在插入/删除后保持隐藏的主要内容,如果未能解决你的问题,请参考以下文章
mouseenter 上的 angular-bootstrap 下拉菜单,并在单击之前保持下拉菜单隐藏。
如何隐藏水平滚动条并保持垂直滚动条可见,同时仍然能够水平滚动?