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 のバグですか、それとも修正方法について何か提案はありますか?
ありがとう !