简体   繁体   中英

Show/hide new value in UITableView in iOS7?

For practice i am doing show/hide the value in UITableView like MXPlayer in android. when i add the value, it should show NEW in lable i have made for custom cell. Once i read the value, it will display in next view, then coming back to list view its shows correct as i excepted, but if i click another value, it will change the previous value.

this code i have tried so far..help me

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *Identifier = @"ceelll";
    customCell *cell =(customCell *) [tableView dequeueReusableCellWithIdentifier:Identifier];
    if (cell==nil) {
        cell=[[[NSBundle mainBundle]loadNibNamed:@"customCell" owner:self options:nil]objectAtIndex:0];
    }

    cell.dataLbl.text=self.listData[indexPath.row];
      if([self.checkedData isEqual:indexPath])
    {
        cell.NewHideLbl.text=@"VIEW";
        cell.NewHideLbl.textColor=[UIColor greenColor];

    }
    else
    {

            cell.NewHideLbl.text=@"NEW";
            cell.NewHideLbl.textColor=[UIColor redColor];

    }
    return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if(self.checkedData)
    {
        customCell* cell =(customCell*) [tableView cellForRowAtIndexPath:self.checkedData];
        cell.NewHideLbl.text=@"NEW";
        cell.NewHideLbl.textColor=[UIColor redColor];

    }
    if([self.checkedData isEqual:indexPath])
    {
        self.checkedData = nil;
    }
    else
    {
        customCell* cell =(customCell*) [tableView
                                                                 cellForRowAtIndexPath:indexPath];
        cell.NewHideLbl.text=@"VIEW";
        cell.NewHideLbl.textColor=[UIColor greenColor];


        self.checkedData = indexPath;
    }
    self.detailObj.tempStr=self.listData[indexPath.row];
    [self.navigationController pushViewController:self.detailObj animated:YES];
}

this is for learning purpose only..Help me thanks in advance..

simple mistake again you given same name so its comming wrong so you need to change NEW to VIEW

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if(self.checkedData)
    {
        customCell* cell =(customCell*) [tableView                                                                cellForRowAtIndexPath:self.checkedData];
       // cell.NewHideLbl.text=@"NEW"; here again you are assigning label NEW so its getting new one
        cell.NewHideLbl.text=@"VIEW";
        cell.NewHideLbl.textColor=[UIColor greenColor];

    }
    if([self.checkedData isEqual:indexPath])
    {
        self.checkedData = nil;
    }
    else
    {
        customCell* cell =(customCell*) [tableView
                                                                 cellForRowAtIndexPath:indexPath];
        cell.NewHideLbl.text=@"VIEW";
        cell.NewHideLbl.textColor=[UIColor greenColor];


        self.checkedData = indexPath;
    }
    self.detailObj.tempStr=self.listData[indexPath.row];
    [self.navigationController pushViewController:self.detailObj animated:YES];
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM