微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 具有地图应用行为的搜索栏(选中时导航栏全宽)

我正在尝试显示一个搜索栏,其行为与原生地图应用中的行为完全相同.我的意思是:

>我的导航栏标题视图中的搜索
>选中后,搜索栏占据导航栏的整个宽度,然后显示SearchdisplayController

到目前为止,我设法得到以下行为:

正如您在上面所看到的,我无法让搜索栏占据选择的全宽.虽然,全宽取消按钮似乎是与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;
}

此外,我想知道地图应用程序是否实际使用导航控制器,因为有令我感到惊讶的自定义行为(titleView的宽度,leftBarButton的动画在屏幕外).

原文地址:https://www.jb51.cc/iOS/331543.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐