如何使用 UISearchBar Delegate 和一个数组?

Posted

技术标签:

【中文标题】如何使用 UISearchBar Delegate 和一个数组?【英文标题】:How to word with UISearchBar Delegate and an array? 【发布时间】:2016-06-16 13:10:01 【问题描述】:

我想用数组实现UIsearchBar。我有一个带有城市名称的数组。如何用表格视图实现它?

【问题讨论】:

【参考方案1】:

首先,您应该设置UISearchBar 的委托,并创建另一个具有过滤结果的NSMutableArrayUITableView 的数据源现在将在这个新数组上发布。

然后,像这样添加委托方法:

-(void)searchBar:(UISearchBar*)searchBar textDidChange:(NSString*)text 
    filteredTableData = [[NSMutableArray alloc] init];

    for (Food* food in allTableData)
    
        NSRange nameRange = [food.name rangeOfString:text options:NSCaseInsensitiveSearch];
        NSRange descriptionRange = [food.description rangeOfString:text options:NSCaseInsensitiveSearch];
        if(nameRange.location != NSNotFound || descriptionRange.location != NSNotFound)
        
            [filteredTableData addObject:food];
        
    
    [self.tableView reloadData];

完整代码见这里:Filtering a UITableView with a search bar

希望这会有所帮助。

【讨论】:

我看到完整的代码但不理解,什么是“食物”。这是来自任何数据类型或类的任何类型的类型定义吗? 抱歉没有包含所有信息。 Food 是存储在数组中的对象的(自定义)类型。假设您存储城市名称,您的类型可能是 NSString。用 NSString 替换 Food。如果您提供一些代码,我会进一步帮助您。 嘿,这是我的表格视图,我想从 responseArr 中搜索状态。 .. NSString *city = [[responseArr valueForKey:@"city"]objectAtIndex:indexPath.row];

以上是关于如何使用 UISearchBar Delegate 和一个数组?的主要内容,如果未能解决你的问题,请参考以下文章

搜索框UISearchBar

UISearchBar作为inputAccessoryView时的响应链

更改UIsearchbar 的背景和cancel按钮(转)

在导航栏添加搜索框

单击 UISearchBar 的取消按钮后,如何使用 UISearchBar 刷新我的 UITableView?

如何让 iqkeyboardmanager 包含 UISearchBar