我有一个UITableView
并且我的数组中有数据,我也有search
个功能。这是一个菜单类型的东西。有不同的菜肴,用户可以搜索任何菜,左侧这里是文字字段,其文字为0,当用户搜索一些菜然后键入其他数字然后如何将输入保存在正确的地方,因为那时它的单元格index
将与原始单元格不同。你可以看到我UITableView
的这张照片
我知道这是一个逻辑问题,但请帮助我,我被困在这里。
答案 0 :(得分:0)
尝试以下方法:
[button setTitle:@"title" forState:UIControlStateNormal];
答案 1 :(得分:0)
.h文件
NSMutableArray * searchDataArray;
现在声明其属性并在.m文件中合成它
2.在-(void)viewDidLoad
分配您的搜索数组并保留它。
[我想你可以设置搜索栏并可以调用搜索委托] ..所以在
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
[sBar resignFirstResponder];
searching = YES; //A boolean for searching condition
[searchData removeAllObjects];
NSString *searchText = searchBar.text;
// record is a mutable array containing the cell text
int count = [records count];
for (int i=0; i<count; i++) {
for(int j=0;j<6;j++){
//finding the cell strings for checking
recordsstr = [NSString stringWithFormat:@"%@",[records objectAtIndex:i];
//Matching string of table and search string
//case sensitivity checking
NSString *mainString = [NSString stringWithFormat:@"%@",[recordsstr lowercaseString]];
NSString *searchString = [NSString stringWithFormat:@"%@",[searchText lowercaseString]];
NSLog(@"main String: %@ and search string: %@ ",mainString,searchString);
NSLog(@"main string lenght: %d and search String lenght: %d",[mainString length],[searchString length]);
if([mainString isEqualToString:searchString] || [mainString rangeOfString:searchString].location != NSNotFound){
[searchData addObject:[NSNumber numberWithInt:i]];
NSLog(@"indext after matching: %d",i);
NSLog(@"number of date in searchdata array after matching: %d",[searchData count]);
break;
}
recordsstr = nil;
}
}
在此代码中,我匹配单元格文本和搜索文本。找到细胞文本后获取细胞索引数组。
现在搜索完成后,重新加载您的tableview [tableview reloadData]
现在在cellForRowAtIndex
检查
if(searching == YES){
for(int i = 0; i<[searchData count]; i++){
if(indexPath.row is equal to [searchData objectAtIndex:i])
{
//change your text field
}
}
else{
//Without searching code
}
可能它会帮助你。如果有任何问题让我感到震惊。