UITableView 标题视图调整大小

Posted

技术标签:

【中文标题】UITableView 标题视图调整大小【英文标题】:UITableView header view resizeing 【发布时间】:2012-05-02 07:49:23 【问题描述】:

我已将 UISearchBar 放入 uitableview headerview 并在 viewcontroller viewdidLoad 方法中将 headerview 高度设置为 0 并隐藏搜索栏,并希望在触摸按钮时显示搜索栏,在触摸处理程序中我恢复 headerview 高度并显示 uisearchbar,但搜索栏覆盖了 tableview 的第一行。有什么办法可以避免重叠?

【问题讨论】:

【参考方案1】:

将 headerview 的 clipsToBounds 属性设置为 YES 即可。

【讨论】:

什么都没发生,我必须在哪里设置这个属性?我在恢复原始大小之前设置它 高度为0的时候应该已经设置好了;那时搜索栏将与下面的 tableview 重叠,因为它不适合。通常,您会在创建 headerview 之后立即设置它,但在使其高度为 0 之前设置它也可以。 不,它不起作用,也许我做错了什么?这是我的代码。在 viewDidLoad 方法中 CGRect headerframe=self.tableView.tableHeaderView.frame; [self.searchBar setHidden:YES]; self.tableView.tableHeaderView.clipsToBounds=YES; self.tableView.tableHeaderView.frame=CGRectMake(headerframe.origin.x, headerframe.origin.y, headerframe.size.width, 0);并在触摸处理程序 [self.searchBar setHidden:NO]; CGRect headerframe=self.tableView.tableHeaderView.frame; self.tableView.tableHeaderView.frame=CGRectMake(headerframe.origin.x, headerframe.origin.y, headerframe.size.width, 44); 在对 tableView 调用 setTableHeaderView 之前,您对 headerview 所做的更改将不可见。您应该将 self.tableView.tableHeaderView 复制到一个变量中,像现在一样调整设置,然后调用 setTableHeaderView。 感谢 Stuart 它的工作原理,还有一个问题是我应该在设置之前创建一个副本还是保留标题视图对象,或者 cocoa-touch 在设置之前注意保留该对象?【参考方案2】:

在 headerView 中将 clipsToBounds 更改为 YES。

【讨论】:

以上是关于UITableView 标题视图调整大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UITableView 控制器中调整表格视图的大小?

在ScrollView中调整了UITableView,内容视图未调整大小

如何将 UITableView 的高度调整为内容大小的高度?

iPad - 带有 UITextField 的 UITableView - 方向改变时自动调整大小问题

无法在 iOS 上以编程方式调整 UITableView 的大小

UITableView 单元格自动调整 AFNetworking 2.0 提供的一些图像视图的大小