在cancelButton被调用后隐藏UINavigationBar下面的UISearchBar
我通常使用[self.tableView setContentOffset:CGPointMake(0,40)];
为了隐藏导航条下方的UISearchBar(我设置为tableView的标题)。 在viewDidLoad中一切正常:当视图加载时,searchBar在导航栏下方。 然后我放了相同的代码行
[self.tableView setContentOffset:CGPointMake(0,40)]
在
- (void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
但它执行任何操作:单击取消按钮时,searchBar保持可见状态。 怎么了?
以下方法应该这样做:
-(void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller{
[self.tableView setContentOffset:CGPointMake(0,40)];
}
下面的方法是从主线程调用的吗?
- (void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
你可以这样检查:
if ([NSThread isMainThread]) {
NSLog(@"Yes it is the main thread.");
}
否则,任何视图更改都不会在屏幕上注册。 如果你必须从一个单独的线程修改视图,你可以使用这个:
[self performSelectorOnMainThread:@selector(XXX) withObject:nil waitUntilDone:NO];
我不确定这是你的问题,但这是我开始寻找的地方。
链接地址: http://www.djcxy.com/p/44269.html上一篇: hide UISearchBar below UINavigationBar after cancelButton was called