小谈iOS中搜索引擎的实现以及对应问题的解决
2018-12-27 本文已影响13人
大神风格化X
镇山之宝.jpeg
最近做了一款有关于对中国城市索引的功能APP,里面涉及到有关于UISearchBar控件的使用。
首先我们将这个控件放到咱们的视图上会发现出现异常灰线,那么如何去掉这个灰线呢?
float version = [[[UIDevice currentDevice]systemVersion]floatValue];
if([_searchBar respondsToSelector:@selector(barTintColor)]) {
float iosversion7_1 = 7.1;
if(version >= iosversion7_1){
[[[[_searchBar.subviews objectAtIndex:0]subviews]objectAtIndex:0]removeFromSuperview];
[_searchBar setBackgroundColor:[UIColor clearColor]];
}
else{//iOS7.0
[_searchBar setBarTintColor:[UIColor clearColor]];
[_searchBar setBackgroundColor:[UIColor clearColor]];
}
}
else{
//iOS7.0以下
[[_searchBar.subviews objectAtIndex:0]removeFromSuperview];
[_searchBar setBackgroundColor:[UIColor clearColor]];
}
从代码中可以看出灰线出现的原因是系统造成的,7.0前后的去除方法也不一样。
那么下一步就是实现UISearchBar的代理方法
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;
这个方法是当用户在搜索框中输入或者删除字段时自动调用的。
NSMutableArray *smallDataArr = [NSMutableArray array];
for (AutoAddressModel *model in self.smallDataArr) {
if ([model.company_name rangeOfString:searchStr].location != NSNotFound || [model.address rangeOfString:searchStr].location != NSNotFound || [model.phone rangeOfString:searchStr].location != NSNotFound) {
[smallDataArr addObject:model];
}
}
self.dataArr = smallDataArr.copy;
[self.tableView reloadData];
将类似上述代码扣入方法中就能实现实时搜索用户所需的条目信息。
其实这块的逻辑还是很简单的,本文就说到这里。有喜欢的小伙伴不妨就点一下关注,希望我能为大家更多的便利,☺