SearchBar旋转问题

时间:2011-01-14 09:05:05

标签: iphone objective-c rotation uitableview uisearchbar

我很抱歉图片,但我不知道更好的方法来解释我的问题。 这是我开始申请时的观点,一切都很好。 alt text 这是当我旋转手机时,搜索栏顶部现在有点位于导航栏下方。 alt text 我开始搜索并取消它。 alt text 现在搜索栏没有覆盖导航栏,但导航栏的高度较小。 alt text 当我进入垂直视图时,导航栏仍然很小,我下面有一个黑洞。 alt text 我无法找到为什么会这样,有什么帮助吗?

这是我创建和添加搜索栏的代码:

- (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]; 
}

我没有专门针对导航或搜索栏更改旋转方法中的任何内容。

2 个答案:

答案 0 :(得分:3)

验证所有视图框架:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

如果它们不正确,请设置正确的框架。

答案 1 :(得分:0)

最简单的解决方案是将UISearchBar添加到UITableView标头。在这种情况下,所有工作人员都将开箱即用。

在视图和旋转之间切换时,设置框架可能会导致UISearchBar宽度出现问题。我在基于标签的应用中遇到过这个问题。是的,测试用例并不容易重现,但是这是一个错误。