4

かなり長い間、私はUISearchBarの上にある有害な行を削除しようとしていませんでした。明るい背景では暗く、暗い背景では明るく見えます。

ここに画像の説明を入力してください ここに画像の説明を入力してください

私はこの質問を見ましたが、それはセパレーターやプルトゥリフレッシュとは何の関係もありませんでした。やっと諦めて助けを求めることにしたとき、私はもう一度突っつい始めて、目がくらむほど単純な(おそらく完全に直感的ではないが)解決策を見つけたので、他の人が同じ問題に直面している場合に備えてそれを共有したいと思いました。検索バーを次のように構成します。

// I tried this drawing method
[self.searchBar setBackgroundImage:[[UIImage imageNamed:@"linen_bg_bar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]];
// and this one.
[self.searchBar setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"linen_bg_bar.png"]]];
// Same problem either way.

[self.searchBar setPlaceholder:NSLocalizedString(@"Filter", @"placeholder text in the search bar")];
[self.searchBar setSearchFieldBackgroundImage:[[UIImage imageNamed:@"linen_textfield_search.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(16, 16, 16, 16)] forState:UIControlStateNormal];
[self.searchBar setImage:[UIImage imageNamed:@"linen_icon_search.png"] forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];
self.table.tableHeaderView = self.searchBar;
[self.table setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"linen_bg_dark.png"]]];

この投稿の提案に従って、私はその上に描画しようとしましたが、描画はまだ線の下にレンダリングされているようでした。

CGRect rect = self.searchBar.frame;
UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, rect.size.width, 2)];
lineView.backgroundColor = [UIColor redColor];

私の赤い「隠蔽」行の例を参照してください。

ここに画像の説明を入力してください

4

4 に答える 4

10

これが機能するかどうかはわかりませんが、カバーアップビューにのy値を設定する必要があることに基づいて、それは理にかなっています。

searchBar.clipsToBounds = YES;
于 2013-03-13T15:14:14.913 に答える
3

お役に立てれば:

self.searchBar.layer.borderColor = Color.CGColor;
self.searchBar.layer.borderWidth = 1;

searchControllerでsearchBarプロパティを見つけることができます

于 2016-04-25T15:09:47.850 に答える
2

私の場合、UISearchBarinコードを作成し、それを右側のバーボタンアイテムとしてナビゲーションバーに配置していました。背景画像を空の画像に設定すると、1ピクセルの線が削除されました。

searchBar.backgroundImage = UIImage()
于 2017-01-20T09:15:09.080 に答える
1

カバーアップラインのフレームを調整して検索バーの1ポイントから開始するだけで、検索バーの上にかなり1ポイントの灰色の線が表示されました。

CGRect rect = self.searchBar.frame;
UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0, -1, rect.size.width, 1)];
lineView.backgroundColor = [UIColor colorWithHexString:@"353535" alpha:1.0];
[self.searchBar addSubview:lineView];

出来上がり。

于 2013-03-12T19:12:28.757 に答える