Aur*_*rte 7 iphone uinavigationbar uisearchbar uisearchdisplaycontroller ios
我正在尝试显示一个搜索栏,其行为与原生地图应用中的行为完全相同.我的意思是:
到目前为止,我设法得到以下行为:

正如您在上面所看到的,我无法让搜索栏占据选择的全宽.虽然,全宽+取消按钮似乎是与SearchDisplayController挂钩的搜索栏的默认行为,至少如果搜索栏没有添加到导航栏!
我错过了一种明显的方法吗?或者在searchBarShouldBeginEditing调用时我是否必须自己自定义导航栏?
只要我没有完美的解决方案,我就会执行以下操作。但我仍然对更好的事情持开放态度!
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onCancel)];
[UIView animateWithDuration:0.1 animations:^(){
self.navigationItem.leftBarButtonItem = nil;
}];
return YES;
}
- (void)onCancel {
[self.searchController setActive:NO];
}
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
[UIView animateWithDuration:0.1 animations:^(){
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"OpenMenuButton.png"] style:UIBarButtonItemStylePlain target:self action:@selector(openSideMenu:)];
}];
self.navigationItem.rightBarButtonItem =self.doneButton;
return YES;
}
Run Code Online (Sandbox Code Playgroud)
此外,我想知道地图应用程序是否实际上使用导航控制器,因为有一些自定义行为(titleView 的宽度、屏幕外 leftBarButton 的动画)让我感到惊讶。
| 归档时间: |
|
| 查看次数: |
1003 次 |
| 最近记录: |