56

iOS 7 で UISearchBar の境界線を削除しようとしています。iOS 6 では正常に動作しています。UISearchBar をプログラムで作成しました。Stack Overflow と Google のほとんどすべてを試しました。

今探している検索バー
今探している検索バー

達成したいこと
達成したいこと

以下のすべてのものを試しました

searchBar.layer.borderWidth = 1;
searchBar.layer.borderColor = [[UIColor whiteColor] CGColor];

for (id img in searchBar.subviews)
{       
     if ([img isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
     {     
            [img removeFromSuperview];    
     }
} 

for (UIView *sub in self.tableView.tableHeaderView.subviews) {
    if ([sub isKindOfClass:[UIImageView class]]) {
        sub.hidden = YES;
    }
}  

しかし、まだ成功していません。

4

10 に答える 10

109

IB の検索バーのプロパティで検索スタイルを最小に設定します

または

Swift:
searchBar.searchBarStyle = UISearchBarStyleMinimal;

Swift 3:
searchBar.searchBarStyle = .minimal;
于 2013-11-11T05:59:51.357 に答える
59

searchBarStyle を UISearchBarStyleMinimal に設定すると、色の設定が台無しになるため、代わりにこれを行うと問題が修正されました。

[self.searchField setBackgroundImage:[[UIImage alloc]init]];

Swift 4 でこのオプションを探している場合:

searchField.setBackgroundImage(UIImage(), for: .any, barMetrics: UIBarMetrics.default)
于 2014-06-08T18:52:39.253 に答える
29

Swift の場合、次の 2 行で十分です。

self.search.isTranslucent = false
self.search.backgroundImage = UIImage()

次に、必要な色を適用します。

self.search.barTintColor = .red
于 2016-05-25T08:15:32.313 に答える
4

だけbarTintColorbackgroundImageも、backgroundColor一人でも私のためにそれをしていませんでしたが、それらをすべて一緒に行うことは私にとってうまくいきました:

self.searchBar.translucent      = NO;
self.searchBar.barTintColor     = [styleManager currentSearchBarTintColor];
self.searchBar.backgroundImage  = [UIImage new];
self.searchBar.backgroundColor  = [styleManager currentSearchBarTintColor];
于 2016-11-10T01:16:33.307 に答える