2017-09-25 12 views
0

私はiOSアプリケーションで作業しています。それは、検索バーと右のバーボタンの項目(ボタンのカップル)があります。機能的に垂直方向に整列する方法UISearchBarと右のバーボタンの項目

UISearchController *searchController = [[UISearchController alloc] initWithSearchResultsController:nil]; 
UISearchBar *searchBar = searchController.searchBar; 
[searchBar sizeToFit]; 
searchBar.placeholder = @"Search"; 

UIButton *routeButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[routeButton setBackgroundImage:[UIImage imageNamed:@"go_route"] forState:UIControlStateNormal]; 
routeButton.frame = CGRectMake(0., 0., 30., 30.); 

UIButton *cancelButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[cancelButton setBackgroundImage:[UIImage imageNamed:@"cancel"] forState:UIControlStateNormal]; 
cancelButton.frame = CGRectMake(0., 0., 30., 30.); 

UIBarButtonItem *routeButtonItem = [[UIBarButtonItem alloc] initWithCustomView:routeButton]; 
UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithCustomView:cancelButton]; 

self.navigationItem.rightBarButtonItems = @[cancelButtonItem, routeButtonItem]; 
self.navigationItem.titleView = searchBar; 

は期待通りに動作しますが、少し奇妙に見える、::

enter image description here

:ボタンは、検索バーよりも上位ビットを描かれている次のように

ものが初期化されます

私は、検索バーと垂直に並べるためにボタンを少し低くしたいと思います。どのように達成するのですか?

P.S. y座標をcancelButton.frame = CGRectMake(0., y, 30., 30.);に変更しても効果がないようです。次のように、中心のナビゲーション項目を取得します、そして、まだフレームを試して更新されていない場合は、viewDidAppearで

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 

    // Enter your code 

} 

をあなたのコードを追加すること

答えて

0

てみてください、

はviewDidAppearでの「y」の位置を更新しますそうでない場合は、検索バーに正確に隣接するフレームを設定するために以下のように試してください。

routeButton.center = CGPointMake(routeButton.center.x, searchBar.center.y); 
+0

このソリューションは、 – Bharath

関連する問題