0

現在、テーブル ビューと検索バーをポップオーバー内に配置しようとしていますが、非常に奇妙なバグが発生しています。検索バーをクリックするたびに、キャンセル ボタンがアニメーション表示され、バーがすぐにステータス バーのサイズまで下がります。

通常状態

選択時

UIBarPosition デリゲートをいじってみましたが、何もしません。考えられることはほぼすべて試したので、あなたの助けを求めることにしました。テーブル ヘッダーに検索バーを追加するために UITableViewController で使用するコードは次のとおりです。

- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];

if (self)
{

    searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, popoverWidth, singleRowHeight)];
    searchBar.delegate = self;
    searchBar.showsScopeBar= YES;

    searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
    searchDisplayController.delegate = self;
    searchDisplayController.searchResultsDataSource = self;
    searchDisplayController.searchResultsDelegate = self;
    searchDisplayController.searchResultsTableView.rowHeight = singleRowHeight;
    self.automaticallyAdjustsScrollViewInsets = NO;

    self.tableView.tableHeaderView = searchBar;

    return self;
}

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar
{
    return UIBarPositionTop;
}

ありがとう!

4

1 に答える 1

2

UISearchDisplayController がアクティブな場合の検索バーの上の余分なスペースによると

- (void)viewDidLoad {
   [super viewDidLoad];

    if ([self respondsToSelector:@selector(edgesForExtendedLayout:)]) { /// iOS 7 or above
        self.edgesForExtendedLayout = UIRectEdgeNone;
    }
}
于 2013-11-10T08:43:19.640 に答える