如何隐藏表头,并在插入/删除后保持隐藏

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)];
    

【讨论】:

以上是关于如何隐藏表头,并在插入/删除后保持隐藏的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中隐藏刻度标签但保持刻度不变?

mouseenter 上的 angular-bootstrap 下拉菜单,并在单击之前保持下拉菜单隐藏。

如何隐藏水平滚动条并保持垂直滚动条可见,同时仍然能够水平滚动?

如何在 C# Web 表单应用程序的回发时保持侧导航栏隐藏?

使用Autolayout隐藏标签后删除空格

隐藏文件夹内容但保持文件可访问