iOS自定义UISearchBar,简单、方便、好用
2016-06-12 14:32
573 查看
本文首发地址
可恶的UI非要搞一个和系统的UISearchBar的不一样的效果,但是系统自带的用实现不了效果,就自能自定义了。
把一个UISearchBar放到UINavigationBar上。并且还要有搜索的结果在整个页面上。。。
先看看效果图
及时筛选代理同系统的searchResultsUpdater代理一样的用法。
CustomSearchBarDataSouce
设置数据源
设置每行显示的图片
CustomSearchBarDelegate
设置点击效果和监听取消按钮动作
可恶的UI非要搞一个和系统的UISearchBar的不一样的效果,但是系统自带的用实现不了效果,就自能自定义了。
把一个UISearchBar放到UINavigationBar上。并且还要有搜索的结果在整个页面上。。。
先看看效果图
HZSearchBar
自定义searcher,完全模仿系统样式选择遵循协议
CustomsearchResultsUpdater及时筛选代理同系统的searchResultsUpdater代理一样的用法。
CustomSearchBarDataSouce
设置数据源
// 设置显示列的内容 -(NSInteger)searchBarNumberOfRowInSection;\ // 设置显示没行的内容 -(NSString *)CustomSearchBar:(CustomSearchBar *)searchBar titleForRowAtIndexPath:(NSIndexPath *)indexPath;
设置每行显示的图片
// 每行图片 -(NSString *)CustomSearchBar:(CustomSearchBar *)searchBar imageNameForRowAtIndexPath:(NSIndexPath *)indexPath;
CustomSearchBarDelegate
设置点击效果和监听取消按钮动作
// 点击每一行的效果 - (void)CustomSearchBar:(CustomSearchBar *)searchBar didSelectRowAtIndexPath:(NSIndexPath *)indexPath; -(void)CustomSearchBar:(CustomSearchBar *)searchBar cancleButton:(UIButton *)sender;
添加HZSearchBar(以添加到导航栏为例)
self.customSearchBar = [CustomSearchBar show:CGPointMake(0, 0) andHeight:SEMHEIGHT]; self.customSearchBar.searchResultsUpdater = self; self.customSearchBar.DataSource = self; self.customSearchBar.delegate = self; [self.navigationController.view insertSubview:self.customSearchBar aboveSubview:self.navigationController.navigationBar];
代理的使用
/**第一步根据输入的字符检索 必须实现*/ -(void)CustomSearch:(CustomSearchBar *)searchBar inputText:(NSString *)inputText { [self.resultFileterArry removeAllObjects]; NSPredicate * predicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@",inputText]; NSArray * arry = [self.myData filteredArrayUsingPredicate:predicate]; for (NSString * taxChat in arry) { [self.resultFileterArry addObject:taxChat]; } } // 设置显示列的内容 -(NSInteger)searchBarNumberOfRowInSection { return self.resultFileterArry.count; } // 设置显示没行的内容 -(NSString *)CustomSearchBar:(CustomSearchBar *)menu titleForRowAtIndexPath:(NSIndexPath *)indexPath { return self.resultFileterArry[indexPath.row]; } - (void)CustomSearchBar:(CustomSearchBar *)segment didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"---->>>>>>>>>%ld",indexPath.row); } -(void)CustomSearchBar:(CustomSearchBar *)segment cancleButton:(UIButton *)sender { } -(NSString *)CustomSearchBar:(CustomSearchBar *)searchBar imageNameForRowAtIndexPath:(NSIndexPath *)indexPath { return @"Search_noraml"; }
各位看官如有不明白的地方可以查看Demo或者添加洲洲哥的QQ号:1290925041
还可以
关注洲洲哥的公众号,提高装逼技能就靠他了相关文章推荐
- GUI - Web前端开发框架
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 评价ui设计作品好坏的八个标准(界面/交互设计研究)
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 搜狗百度360市值齐跌:搜索引擎们陷入集体焦虑?
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 本人即将筹备败家日志,敬请期待!
- IE:使用搜索助手
- Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
- 为Yahoo! UI Extensions Grid增加内置的可编辑器
- Cocos2d-x UI开发之文本类使用实例
- C++深度优先搜索的实现方法
- 基于文本的搜索
- php实现搜索一维数组元素并删除二维数组对应元素的方法
- 使用Sphinx对索引进行搜索
- 谈谈对jquery ui tabs 的理解