iOS - 搜索表格视图

Posted

技术标签:

【中文标题】iOS - 搜索表格视图【英文标题】:iOS - Searching Table View 【发布时间】:2012-03-29 15:55:30 【问题描述】:

这是我当前的搜索代码。

-(void)filterContentForSearchText:(NSString *)searchText scope:(NSString *)scope 
    [filteredList removeAllObjects];         
    for(Location *item in list)
    
        NSRange result = [item.title rangeOfString:searchText options:NSCaseInsensitiveSearch range:NSMakeRange(0, [searchText length])];
        if(result.location != NSNotFound)
        
            [filteredList addObject:item];
        
    

如何更改它以匹配标题的任何部分,而不仅仅是开头。

例子:

目前,如果我搜索“Las”,“Las Vegas”将出现在列表中,但当我搜索“Vegas”时却没有。

我希望搜索词“Vegas”与“Las Vegas”一起返回

谢谢, 阿什利

【问题讨论】:

仅供参考,您可能希望通过filteredArrayUsingPredicate: 开始使用带有数组的NSPredicates。它使生活更轻松。这是谓词字符串语法的 Apple 参考:Predicate Format String Syntax 【参考方案1】:

使用rangeOfString:options: 代替 rangeOfString:options:range:。正是range 参数将搜索限制在字符串的开头。

或者如果出于某种原因您想使用 rangeOfString:options:range: 则将其用作范围:NSMakeRange(0, [item.title length])

【讨论】:

我不敢相信这就是全部。谢谢

以上是关于iOS - 搜索表格视图的主要内容,如果未能解决你的问题,请参考以下文章

iOS:如何在另一个表格视图中显示搜索结果?以及如何在搜索时显示建议?

IOS 7表格视图内容大小问题

在表格视图中实现搜索栏

如何使用搜索栏搜索多个视图? (iOS 斯威夫特)

UISearchDisplayController 重叠原始表格视图

在搜索栏处于活动状态时删除表格视图中的单元格 - CoreData 错误