美文网首页
小谈iOS中搜索引擎的实现以及对应问题的解决

小谈iOS中搜索引擎的实现以及对应问题的解决

作者: 大神风格化X | 来源:发表于2018-12-27 17:09 被阅读13次
    镇山之宝.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];
    

    将类似上述代码扣入方法中就能实现实时搜索用户所需的条目信息。
    其实这块的逻辑还是很简单的,本文就说到这里。有喜欢的小伙伴不妨就点一下关注,希望我能为大家更多的便利,☺

    相关文章

      网友评论

          本文标题:小谈iOS中搜索引擎的实现以及对应问题的解决

          本文链接:https://www.haomeiwen.com/subject/kncdlqtx.html