添加位于navigationItem的titleView的uisearch栏右侧的按钮

时间:2012-11-20 15:24:03

标签: uisearchbar rightbarbuttonitem

我在navigationItem's titleView中有一个UISearchBar:

self.searchBar = ....
self.navigationItem.titleView = self.searchBar;

我需要在UISearchbar右侧添加一个按钮,并在搜索栏获得焦点时隐藏。 (即出现取消按钮时)。

如何完成此类行为? enter image description here

感谢。

1 个答案:

答案 0 :(得分:3)

你需要做的是创建另一个UIView并放置UISearchBar和你的UIButton"设置"对它。然后直接添加新的复合UIView而不是self.searchBar。

以下是一个例子:

UISearchBar *_searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 230, SEARCHBAR_HEIGHT)];
    _searchBar.barStyle = UIBarStyleBlack;
    _searchBar.delegate = self;
UIButton *_button = [[UIButton alloc] initWithFrame:CGRectMake(0.0, 0.0, 100, BUTTON_HEIGHT)];
UIView *searchBarView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, SEARCHBAR_WIDTH, SEARCHBAR_HEIGHT)];
    [searchBarView addSubview:_searchBar];
    [searchBarView addSubview:_button];
    self.navigationItem.titleView = searchBarView;