如何模仿UISearchBar在iOS中Safari的行为

如何模仿UISearchBar在iOS中Safari的行为,第1张

概述我在导航栏的titleView中有一个UISearchBar(它看起来像下面的图片),我想让它像Safari浏览器那样工作. 我没有足够的声誉来发布图片,这里是链接 第一张照片 第二张图片 我想要实现的是: >在正常状态下,导航栏包含2个左右按钮,一个UISearchBar和该搜索栏内的一个清除按钮(看起来像带有2个加号按钮的第一张照片). >在搜索状态下,视图被另一个视图替换,当它被关闭时,视图 我在导航栏的TitleVIEw中有一个UISearchbar(它看起来像下面的图片),我想让它像Safari浏览器那样工作.

我没有足够的声誉来发布图片,这里是链接

第一张照片

第二张图片

我想要实现的是:

>在正常状态下,导航栏包含2个左右按钮,一个UISearchbar和该搜索栏内的一个清除按钮(看起来像带有2个加号按钮的第一张照片).
>在搜索状态下,视图被另一个视图替换,当它被关闭时,视图恢复到原始状态.
>适用于iOS 6和7

我知道这可以通过使用UISearchdisplayController,但它不工作.这是我的代码:

.h:实现tableVIEw的DataSource / Delegate,UISearchdisplayDelegate,UISearchbarDelegate

.M

-(voID) vIEwDIDload{    //Add left,right buttons    self.leftbutton = [[UIbarbuttonItem alloc] init];    [self.leftbutton setStyle:UIbarbuttonItemStylePlain];    [self.leftbutton setTitle:@"button"];    self.navigationItem.leftbarbuttonItem = self.leftbutton;    self.rightbutton = [[UIbarbuttonItem alloc] init];    [self.rightbutton setStyle:UIbarbuttonItemStylePlain];    [self.rightbutton setTitle:@"button"];    self.navigationItem.rightbarbuttonItem = self.rightbutton;    self.searchbar = [[UISearchbar alloc] initWithFrame:self.navigationController.navigationbar.bounds];    if (DEVICE_IS_IOS7) {        self.searchbar.searchbarStyle = UISearchbarStyleMinimal;    }    self.navigationItem.TitleVIEw = self.searchbar;    self.searchbar.delegate = self;    //----------------    self.searchController = [[UISearchdisplayController alloc] initWithSearchbar:self.searchbar contentsController:self];    self.searchController.delegate = self;    self.searchController.searchResultsDataSource = self;    self.searchController.searchResultsDelegate = self;}    /*    table implementation    */

在iOS 7中,UISearchdisplayController(灰色)的视图没有覆盖主视图,resulttable没有重新加载数据,甚至可以过滤搜索字符串. (我不得不使用KVO来显示它)

在iOS 6中,灰色的东西涵盖了所有的屏幕和键盘没有显示(它立即消失).

有人可以帮忙吗
谢谢.

解决方法 我已经做了两次非常类似的UI到你所描述的,最近一个更接近Twitter的iOS 7的UISearchbar行为.如果要在UINavigationbar内显示一个UISearchbar,请忘记这个设置,因为您可能会遇到诸如 this(尽管为 it seems fixed by Apple)的路障.

假的,而不是.隐藏您的UIVIEwController中的导航栏,并使用高度为64的iOS 7或44 for iOS 6的UIVIEw,并将其放在顶部,以使其看起来像一个导航栏.将UISearchbar添加到正常的子视图中,然后根据您的需要在UISearchbarDelegate方法中进行动画化.

总结

以上是内存溢出为你收集整理的如何模仿UISearchBar在iOS中Safari的行为全部内容,希望文章能够帮你解决如何模仿UISearchBar在iOS中Safari的行为所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1095538.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存