Jac*_*kYi 22 uinavigationbar uisearchbar ios7
我在UINavigationBar上面添加UISearchBar并设置UIsearchbar showsCancelButton YES,在iOS6中正常工作但在iOS7中没有显示取消按钮.我使用下面的代码片段
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 600, 44)];
searchBar.showsCancelButton = YES;
searchBar.translucent = NO;
[searchBar setTintColor:[UIColor redColor]];
searchBar.backgroundColor = [UIColor yellowColor];
[self.navigationController.navigationBar addSubview:searchBar];
Run Code Online (Sandbox Code Playgroud)
Rod*_*egg 44
出于某种原因,iOS7在添加到导航栏时不显示取消按钮.如果您尝试将其设置为navigationItem的titleView,也会发生这种情况.
您可以通过首先将UISearchBar包装在另一个UIView中来解决此问题.这是我作为titleView的方式:
UISearchBar *searchBar = [UISearchBar new];
searchBar.showsCancelButton = YES;
[searchBar sizeToFit];
UIView *barWrapper = [[UIView alloc]initWithFrame:searchBar.bounds];
[barWrapper addSubview:searchBar];
self.navigationItem.titleView = barWrapper;
Run Code Online (Sandbox Code Playgroud)
我有类似的问题,在iPhone搜索栏上显示取消按钮,但在iPad上没有显示取消按钮.将UIsearchBar包装到UIView就像@Rodskjegg抛出样式问题一样.在iPad UIsearchBar上将其设置为navigationItem的titleView,并将UIBarButtonItem添加到setRighttBarButtonItem作为UIBarButtonSystemItemCancel.
[self.navigationItem setLeftBarButtonItem:Nil animated:YES];
self.navigationItem.titleView = self.searchBar;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
{
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(searchBarCancelButtonClicked:)];
[self.navigationItem setRightBarButtonItem: cancelButton animated:YES];
}
else {
[self.navigationItem setRightBarButtonItem: nil animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28184 次 |
| 最近记录: |