【发布时间】: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