2

UISearchController を UITableView ヘッダー ビューに追加する場合、UISearchBar の背後に背景を設定することはできません。

2 番目の図は、下にドラッグしたときのビューを示しています。

普通 ドラッグ

UITableView は、ヘッダーなしで Storyboard に設定されます。

self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];

// Setup appearance
self.searchController.searchBar.barStyle = UIBarStyleBlack;
self.searchController.searchBar.barTintColor = BLUE;
self.searchController.searchBar.tintColor = RED;

// Setup logic
self.searchController.searchBar.scopeButtonTitles = @[ NSLocalizedString(@"students", nil), NSLocalizedString(@"professors", nil), NSLocalizedString(@"rooms", nil) ];
self.searchController.searchBar.delegate = self;
self.searchController.searchResultsUpdater = self;
self.tableView.tableHeaderView = self.searchController.searchBar;

self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.hidesNavigationBarDuringPresentation = NO;
self.definesPresentationContext = YES;

背景をストーリーボード、スーパービュー、UITableView、手動で UISearchBar に追加してみました。

その他のコードはこちらから入手できます。

4

1 に答える 1

2

これを試すことができます:

UIView* topview = [[UIView alloc] initWithFrame:CGRectMake(0, -480, self.view.frame.size.width, 480)];
topview.backgroundColor = BLUE;

[self.tableView addSubview:topview];

でテストしましたが、UITableViewController正常に動作します。

この回答からインスピレーションを得た

于 2015-02-25T17:08:39.203 に答える