【问题标题】:Hiding UISearchBar in iOS 7 crops top row在 iOS 7 中隐藏 UISearchBar 裁剪顶行
【发布时间】:2014-05-07 09:18:28
【问题描述】:

我正在调用以下函数以在 viewDidLoad 中成功隐藏我的搜索栏:

- (void)hideSearchBar {
    CGRect newBounds = self.tableView.bounds;
    newBounds.origin.y = newBounds.origin.y + _searchBar.bounds.size.height;
    self.tableView.bounds = newBounds;
}

但是如果我在(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar 中调用完全相同的函数,我的表格视图的第一行就会与导航栏重叠。为什么只有在从searchBarTextDidEndEditing 调用隐藏函数时才会发生这种重叠?

【问题讨论】:

  • 我想知道viewDidLoad 是不是错了。 viewDidLoad 不知道self.tableView.bounds 是什么还为时过早;表格视图尚未放入界面中。
  • 我认为这对于身高来说是正确的,但我认为起源很好。我从this 教程中获得了代码。通常是信誉良好的网站。
  • 我想我的问题是:如果你把电话从viewDidLoad 中拉出来并放到viewWillAppear: 中,它还能用吗?如果是这样,那么我们有一些东西可以咬牙切齿……
  • 将调用放入 viewwillappear 会导致与将其放入 viewdidload 相同的结果 - 它仍然可以正常工作。但是我注意到,如果我让导航栏变成半透明,它就可以正常工作……一定是一些奇怪的 ios 错误
  • 好的,让我们回到searchBarTextDidEndEditing: 的问题。如果您将调用 hideSearchBar 包装在一些延迟的性能中会发生什么?

标签: ios iphone uitableview ios7 uisearchbar


【解决方案1】:

this question 的回答帮助我意识到这在某种程度上与导航栏是半透明的有关。当我将导航栏半透明设置为 NO 时,我遇到了问题。当我停止让它成为 NO 时,它工作正常。

【讨论】:

  • 好的,但最好解决它。让我们先尝试一下我的延迟性能想法,然后再深入了解并更改半透明度。毕竟,如果半透明在这里造成了欠重叠,那为什么它一开始就不会引起欠重叠呢?
  • 我明天会尝试进行更多调查并尝试延迟
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-08
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多