我遇到了一個導致嚴重頭痛的問題。UISearchBar在處理文本字段時移動
在Interface Builder中,我有一個只包含tableview的場景。這個子類的控制器UITableViewController。我還有另一個場景,它的頂部有一個高度爲50的視圖,跨越視圖的寬度。下面是一個容器視圖,最終包含一個列表或一張地圖。控制器的子類爲UIViewController。下面是它看起來像在模擬器上...
請注意,您在上面的圖片中看到的列表是一個完全不同的表和視圖控制器。搜索欄控制器用於按城市或郵編搜索位置。搜索欄控制器的表格視圖覆蓋另一個列表。當從搜索表格中選擇一個位置時,該位置的區域被饋送到另一個控制器,該控制器使用專用Web服務來檢索興趣點列表。
我正在調用以下方法將搜索欄添加到上述視圖。
- (void)setupSearchView {
self.searchTableViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"LocationSearchTable"];
self.searchController = [[UISearchController alloc] initWithSearchResultsController:self.searchTableViewController];
self.searchController.searchResultsUpdater = self.searchTableViewController;
[self.searchController.searchBar sizeToFit];
self.searchController.searchBar.tag = 9189;
self.searchController.searchBar.placeholder = @"Search by city or ZIP code";
[self.searchView addSubview:self.searchController.searchBar];
[[self.searchView viewWithTag:9189] becomeFirstResponder];
self.searchController.hidesNavigationBarDuringPresentation = false;
self.searchController.dimsBackgroundDuringPresentation = true;
self.definesPresentationContext = true;
}
當我單擊文本字段,與self.definesPresentationContext設置爲true,搜索欄下拉導航欄的確切高度,離開它上面的一個大空白。
如果self.definesPresentationContext是假的,那麼,行爲和結果是不同的。在這種情況下,當我點擊搜索字段時,一切都很正常。但只要我開始型號,導航控制器覆蓋白色。搜索欄不會更改位置。如果我使用Reveal,我可以看到導航欄已經推回棧中。這裏是什麼樣子......
我缺少什麼?
看着這個更近......表格背景總是比其他表格圖層高出64個像素。 –
你是如何解決這個問題的? –