在iphone上搜索时刷新的tableview

时间:2011-12-30 03:23:32

标签: iphone uitableview search

我有一个表视图,在表格中并排显示3个数据,例如A(名称),B(滚动号),C(id)。
现在,如果用户根据A进行搜索(按名称搜索)(表格在搜索时用名称刷新)值,我想要隐藏B&的内容。 C或他们应该在搜索开启时显示正确的值,而不是他们在搜索之前得到的旧值。

我找不到解决方案如何处理剩余的B& C.kindly建议

这是我的代码

    - (void) searchTableView 
{
        NSLog(@"search button is down %@",searchBar.text);
            NSString *searchText = searchBar.text;
            NSMutableArray *searchArray = [[NSMutableArray alloc] init];

         if(SearchQuery==1)
         {
          [searchArray addObjectsFromArray:[entityArray valueForKey:@"Name"]];
         }
        if(SearchQuery==2)
        {
            [searchArray addObjectsFromArray:[entityArray valueForKey:@"IC"]];
    }

            for (NSString *sTemp in searchArray)
            {
                NSLog(@"copyListOfItems in search -%@",copyListOfItems);//final array for names
                          NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];

                if (titleResultsRange.length > 0)
                    [copyListOfItems addObject:sTemp];
            }
    }

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        NSManagedObject *object = (NSManagedObject *)[entityArray objectAtIndex:indexPath.row];

        NSString *CellIdentifier = @"Cell";
        int indicator = UITableViewCellAccessoryNone;

        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        if (cell == nil) {

            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

            mainLabel = [[[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 50.0)] autorelease];//220

            mainLabel.tag = MAINLABEL_TAG;

            [mainLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:18]];//Palatino-BoldItalic
            mainLabel.textAlignment = UITextAlignmentLeft;

            mainLabel.textColor = [UIColor blackColor];
            secondLabel = [[[UILabel alloc] initWithFrame:CGRectMake(313.0, 9.0, 200.0, 25.0)] autorelease];//83

            secondLabel.tag = SECONDLABEL_TAG;

smallSystemFontSize]]];
            [secondLabel setFont:[UIFont fontWithName:@"Helvetica" size:18]];
            secondLabel.textAlignment = UITextAlignmentLeft;

            secondLabel.textColor = [UIColor blackColor];

            [cell.contentView addSubview:secondLabel];

            //// 3rd labl display
            thirdLabel = [[[UILabel alloc] initWithFrame:CGRectMake(560.0, 9.0, 250.0, 25.0)] autorelease];//83

            thirdLabel.tag = THIRDLABEL_TAG;

            //thirdLabel.font = [UIFont systemFontOfSize:13.0];

            [thirdLabel setFont:[UIFont fontWithName:@"Helvetica" size:18]];//Palatino-BoldItalic
            thirdLabel.textAlignment = UITextAlignmentLeft;
            thirdLabel.textColor = [UIColor blackColor];

            [cell.contentView addSubview:thirdLabel];
        }

        if(searching) 
{
            NSLog(@" seacrh List in table view =%@",[copyListOfItems objectAtIndex:indexPath.row]);
          //  NSString *s=[object valueForKey:@"Name"];
            NSLog(@"copyListOfItems length ---------%d",[copyListOfItems count]);

             cell.textLabel.text =[copyListOfItems objectAtIndex:indexPath.row] ;

            if(SearchQuery==2)
            {
                 secondLabel.text=@"kk";// not working
                secondLabel.alpha=1;       // this is not working i cant upadate     

            }
        }
       else
        {
        if(self.entityName == @"Parent")
        {
            {
                indicator = UITableViewCellAccessoryDisclosureIndicator;
                CellIdentifier = @"CellWithDisclosure";
                       }
        }

            if(SearchQuery==2)
            {
                cell.textLabel.text =[object valueForKey:@"IC"] ;

                secondLabel = (UILabel *)[cell.contentView viewWithTag:SECONDLABEL_TAG];
                thirdLabel = (UILabel *)[cell.contentView viewWithTag:THIRDLABEL_TAG];

                NSLog(@"sex is %@ ",[object valueForKey:@"Name"]);

                secondLabel.text=[object valueForKey:@"Name"] ;

                secondLabel.alpha=0;

                      thirdLabel.text=[object valueForKey:@"roll"] ;
            }

0 个答案:

没有答案