我在UITableView中添加搜索。我想添加像XCode中使用的智能搜索
关键字
刺痛
应与
匹配答案 0 :(得分:1)
//Filter within Tableview delegate functions
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@", SEARCH_TEXT];
NSArray *filtered = [arrayCategories filteredArrayUsingPredicate:predicate];
return filtered.count
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = (UITableViewCell *) [tableView dequeueReusableCellWithIdentifier:@"CELLSEARCH"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@", SEARCH_TEXT];
NSArray *filtered = [arrayCategories filteredArrayUsingPredicate:predicate];
[cell.textLabel setText:filtered[indexPath.row]];
return cell;
}
答案 1 :(得分:1)
我认为这就是你要找的东西
let arr = ["job","smart","hating","eating","luck","cup",]
let charset = CharacterSet(charactersIn: "smarting")
for str in arr
{
if str.lowercased().rangeOfCharacter(from: charset) != nil
{
print(str)
}
}
<强>输出强>
智能 恨 吃
答案 2 :(得分:0)
如果您想显示@DatabaseField
Country country;
的结果。您可以使用array
。您需要在NSPredicate
中添加所有字符串,并使用另一个数组来显示已过滤的结果,如:
array
如果你有一系列词典,那么只需用这个词替换过滤线
//filter content from array:
- (void)filterContentForSearchText:(NSString*)searchText {
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@", searchText];
YOUR_FILTERED_ARRAY = [[YOUR_ARRAY filteredArrayUsingPredicate:resultPredicate] mutableCopy];
}
REFERENCE用于谓词。
YOUR_FILTERED_ARRAY = [[YOUR_ARRAY filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(name contains[c] %@)", searchText]]mutableCopy];
//name is the "key" and search text is the matching value!
的
SWIFT 3x:
filteredarrayusingpredicate