我很抱歉图片,但我不知道更好的方法来解释我的问题。 这是我开始申请时的观点,一切都很好。 这是当我旋转手机时,搜索栏顶部现在有点位于导航栏下方。 我开始搜索并取消它。 现在搜索栏没有覆盖导航栏,但导航栏的高度较小。 当我进入垂直视图时,导航栏仍然很小,我下面有一个黑洞。 我无法找到为什么会这样,有什么帮助吗?
这是我创建和添加搜索栏的代码:
- (void) loadView
{
[super loadView];
sBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0,0,320,45)];
sBar.delegate = self;
sBar.placeholder = @"Search";
self.tableView.tableHeaderView = sBar;
UISearchDisplayController *searchDC = [[UISearchDisplayController alloc] initWithSearchBar:sBar contentsController:self];
self.searchDisplayController = searchDC;
searchDC.delegate = self;
searchDC.searchResultsDataSource = self;
searchDC.searchResultsDelegate = self;
[sBar release];
[searchDC release];
}
我没有专门针对导航或搜索栏更改旋转方法中的任何内容。
答案 0 :(得分:3)
验证所有视图框架:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
如果它们不正确,请设置正确的框架。
答案 1 :(得分:0)
最简单的解决方案是将UISearchBar
添加到UITableView
标头。在这种情况下,所有工作人员都将开箱即用。
在视图和旋转之间切换时,设置框架可能会导致UISearchBar宽度出现问题。我在基于标签的应用中遇到过这个问题。是的,测试用例并不容易重现,但是这是一个错误。