1

iPad の UITableView の上部に UISearchBar を配置するために、iOS5 で動作する次のコードがあります。

- (void)viewDidLoad
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

        CGRect searchViewFrame = CGRectMake(33, 33, 264, 45);
        UIView *containerSearch = [[UIView alloc] initWithFrame: searchViewFrame];
        searchBar = [[UISearchBar alloc] init];
        searchBar.barStyle = UIBarStyleDefault;
        [containerSearch addSubview: searchBar];
        self.tableView.tableHeaderView = containerSearch;

        searchController = [[UISearchDisplayController alloc]
                            initWithSearchBar:searchBar
                            contentsController:self];

        searchBar.delegate = self;
        searchController.delegate = self;
        searchController.searchResultsDelegate=self;
        searchController.searchResultsDataSource=self; 

        [searchBar release];
    }  

ただし、iOS6 では、このコードは奇妙な動作をします。iPad をランドスケープ モードで起動すると、UISearchBar がオフスクリーンになります。iPad を縦向きに回転させて横向きに戻すまで、正しい位置に表示されません。

これは単なる iOS6 のバグですか、それとも修正方法について何か提案はありますか?

ありがとう !

4

1 に答える 1

0

フレームで検索バーを初期化しようとしましたか?searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0,0,265,45)];

于 2013-01-28T12:53:18.147 に答える