我會爲你做一個更好的。這個例子將搜索用戶類型。如果您的數據非常龐大,您可能需要按照原計劃在- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
中執行。不幸的是,你需要第二個數組,但它很容易圍繞它的代碼表:
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
if(searchText.length == 0)
{
isFiltered = FALSE;
}
else
{
isFiltered = true;
if (filteredTableData == nil)
filteredTableData = [[NSMutableArray alloc] init];
else
[filteredTableData removeAllObjects];
for (NSString* string in self.masterSiteList)
{
NSRange nameRange = [string rangeOfString:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)];
if(nameRange.location != NSNotFound)
{
[filteredTableData addObject:string];
}
}
}
[self.tableView reloadData];
}
然後更新您的委託方法來顯示filteredTableData
陣列,而不是規則排列的數據時,isFiltered
變量被設置到YES。
我加入boolen isFilterd,並添加這樣的:如果(!isFiltered =否){ 的NSArray * filteredTableData = [[NSMutableArray裏的alloc] INIT]; cell.textLabel.text = [filteredTableData objectAtIndex:indexPath.row]; } 否則如果(isFiltered = YES!){ \t \t cell.textLabel.text = [self.itemArray objectAtIndex:indexPath.row]; } \t return cell; } ...但它並沒有真正的工作 – Alessandro
經過一些調整,它終於工作了! – Alessandro
是的。 「調整」部分是示例代碼最難的部分。大聲笑 – CodaFi