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

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

【问题讨论】:

    标签: ios cocoa-touch uitableview uisearchbar


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 1970-01-01
      • 2014-11-05
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多