0

UISearch をプログラムでアプリに追加し、UINavigation バーがインターフェイス ビルダーに追加されました。検索バーを追加すると、検索バーとナビゲーション バーの間に小さな隙間ができました。それらを一緒にマージする方法はありますか?ありがとう。

スクリーンショット

self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0,    self.view.bounds.size.width, 44.0)];
self.searchBar.delegate = self;
self.searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
self.searchBar.showsCancelButton = NO;
[self.view addSubview:self.searchBar];
4

1 に答える 1

1

SearchBar がナビゲーション バーのすぐ下にあることを確認する場合は、次のように autolayout を使用します。

self.searchBar = [[UISearchBar alloc] init];
self.searchBar.translatesAutoresizingMaskIntoConstraints = NO;
self.searchBar.delegate = self;
self.searchBar.showsCancelButton = NO;
[self.view addSubview:self.searchBar];

id topLayoutGuide = self.topLayoutGuide;
UISearchBar *searchBar = self.searchBar; //updated

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[searchBar]|" options:0 metrics:0 views:NSDictionaryOfVariableBindings(searchBar)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[topLayoutGuide][searchBar]" options:0 metrics:0 views:NSDictionaryOfVariableBindings(searchBar, topLayoutGuide)]];

編集:

いろいろ調べたところ、ギャップではないことがわかりました。これは、Apple が物事を場所に分割するために使用するイメージです。あなたがアプローチできる多くのオプションがあります

1.) 検索と破棄 - UIImageView を見つけて、バーから削除します。
iOS 7 で UIToolbar のヘアラインを削除する

2.) バーのカスタム背景を設定する

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
于 2013-09-24T18:52:29.133 に答える