web-dev-qa-db-ja.com

UITableViewのUISearchControllerの背景色

SearchControllerの検索バーをプログラムでUITableViewのtableHeaderViewに挿入しています。プルアップして検索バーを表示したり、テーブルを更新したりすると、次の図に示すように、リフレッシュアクティビティインジケーターと検索バーの間にあるこの奇妙な濃い灰色が表示されます(この背景色は、リフレッシュを削除しても消えません)見る):

enter image description here

tableView.tableHeaderView = searchController.searchBar

私は考えられるあらゆる方法でこの背景色を変更しようとしました:

tableView.backgroundColor = UIColor.redColor()
tableView.tableHeaderView!.backgroundColor = UIColor.redColor()
searchController.searchBar.backgroundColor = UIColor.redColor()
view.backgroundColor = UIColor.redColor()

何も動作しません。このダークグレーは、プロジェクトで使用するカスタムカラーの1つではないため、手動で設定しなかったことがわかります。 searchControllerを取り出すとすぐに、すべてが以前と同じように機能します。その濃い灰色は、他の場所で見られる明るい灰色に置き換えられます。

21
Ryan Bobrowski

UITableViewのbackgroundViewを新しい役に立たないビューに設定します。

    self.tableView.backgroundView = [UIView new];

非論理的なようですが、魅力のように機能します:)

43
Cameron E

SwiftでのキャメロンEの正解:

tableView.backgroundView = UIView()

ご了承ください self.tableView.backgroundView = nilnotを実行します。

13
BAP

これを試して:

[searchController.searchBar setBarTintColor:[UIColor blackColor]];
[searchController.searchBar setTintColor:[UIColor whiteColor]];

お役に立てれば。

9
sancho

空のビューをUITableViewのbackgroundviewとして設定するだけです

[self.tableView setBackgroundView:[[UIView alloc] initWithFrame:CGRectZero]];
3
daarkfish

の色を変えてみてください

self.navigationController?.navigationBar = UIColor(red:1、green:1、blue:1、alpha:1)

0
Rolan