-
I have become able to parse the xml url using
TBXMLparser. -
parsed data will be into a
NSMutableArraynamedrecords. -
Here is the code….
if ([[TBXML elementName:element] isEqualToString:@"order"]) { NSLog(@"xml element checking"); TBXMLElement *id = [TBXML childElementNamed:@"id" parentElement:element]; TBXMLElement *status = [TBXML childElementNamed:@"status" parentElement:element]; TBXMLElement *date = [TBXML childElementNamed:@"date" parentElement:element]; TBXMLElement *by = [TBXML childElementNamed:@"by" parentElement:element]; TBXMLElement *total = [TBXML childElementNamed:@"total" parentElement:element]; [records addObject:[NSArray arrayWithObjects: [TBXML textForElement:id], [TBXML textForElement:status], [TBXML textForElement:date], [TBXML textForElement:by], [TBXML textForElement:total],nil]]; -
Now these
recordsdata will be display in the tableview cell,so number of rows will be as same asrecordsarray size. -
now in my
tableviewthere is fiveUILabel.every label will display the attribute value of therecordsarray value.6.i can display the value of the attribute first time until scroll the tableview but my problem is when i start scrolling in my
UITableviewthen value starts to display in wrong cell. -
Here the tableview code…
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *MyIdentifier = @"MyIdentifier"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease]; cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:15.0]; cell.selectionStyle = UITableViewCellSelectionStyleNone; UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrow.png"]]; cell.accessoryView = imageView; cell.accessoryType = UITableViewCellSelectionStyleNone; tableView.separatorColor = [UIColor clearColor]; tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; cellView = [[[UIView alloc] initWithFrame:CGRectMake(5,8,290, 120)] autorelease]; cellView.backgroundColor = [UIColor clearColor]; cellView.tag =10; [cell.contentView addSubview:cellView]; imgView = [[UIImageView alloc] initWithFrame:CGRectMake(2, 40, 48, 48)]; imgView.image = [UIImage imageNamed:@"productbox.png"]; imgView.layer.borderColor = [UIColor blackColor].CGColor; imgView.layer.borderWidth = 2.0; imgView.tag = 5; [cellView addSubview:imgView]; CGRect idLabelRect = CGRectMake(65, 0, 190, 18); idLabel = [[[UILabel alloc] initWithFrame:idLabelRect] autorelease]; idLabel.textAlignment = UITextAlignmentLeft; idLabel.textColor = [UIColor blackColor]; idLabel.font = [UIFont systemFontOfSize:12]; idLabel.backgroundColor = [UIColor redColor]; idLabel.layer.borderColor = [UIColor grayColor].CGColor; idLabel.tag = 0; CGRect statusRect = CGRectMake(65, 22, 190, 22); statusLabel = [[[UILabel alloc] initWithFrame:statusRect] autorelease]; statusLabel.textAlignment = UITextAlignmentLeft; statusLabel.textColor = [UIColor blackColor]; statusLabel.font = [UIFont systemFontOfSize:12]; statusLabel.backgroundColor = [UIColor greenColor]; statusLabel.layer.borderColor = [UIColor grayColor].CGColor; statusLabel.tag = 1; CGRect orderDateRect = CGRectMake(65, 48, 190, 22); orderDate = [[[UILabel alloc] initWithFrame:orderDateRect] autorelease]; orderDate.textAlignment = UITextAlignmentLeft; orderDate.textColor = [UIColor blackColor]; orderDate.font = [UIFont systemFontOfSize:12]; orderDate.backgroundColor = [UIColor grayColor]; orderDate.layer.borderColor = [UIColor grayColor].CGColor; orderDate.tag = 2; CGRect byRect = CGRectMake(65, 75, 190, 22); byLabel = [[[UILabel alloc] initWithFrame:byRect] autorelease]; byLabel.textAlignment = UITextAlignmentLeft; byLabel.textColor = [UIColor blackColor]; byLabel.font = [UIFont systemFontOfSize:12]; byLabel.backgroundColor = [UIColor yellowColor]; byLabel.layer.borderColor = [UIColor grayColor].CGColor; byLabel.tag = 3; CGRect totalRect = CGRectMake(65, 98, 190, 22); totalLabel = [[[UILabel alloc] initWithFrame:totalRect] autorelease]; totalLabel.textAlignment = UITextAlignmentLeft; totalLabel.textColor = [UIColor blackColor]; totalLabel.font = [UIFont systemFontOfSize:12]; totalLabel.backgroundColor = [UIColor cyanColor]; totalLabel.layer.borderColor = [UIColor grayColor].CGColor; totalLabel.tag = 4; [cellView addSubview:idLabel]; [cellView addSubview:statusLabel]; [cellView addSubview:orderDate]; [cellView addSubview:byLabel]; [cellView addSubview:totalLabel]; } x = [records count]; //NSLog(@" total number of row: %d",x); if(y<x){ if(y == indexPath.section){ cellView = (UIView *)[cell.contentView viewWithTag:10]; idLabel = (UILabel *)[cellView viewWithTag:0]; statusLabel = (UILabel *)[cellView viewWithTag:1]; orderDate = (UILabel *)[cellView viewWithTag:2]; byLabel = (UILabel *)[cellView viewWithTag:3]; totalLabel = (UILabel *)[cellView viewWithTag:4]; imgView = (UIImageView *)[cellView viewWithTag:5]; NSLog(@"the value of y: %d",y); NSLog(@"the value of indexpath.section: %d",indexPath.section); idLabel.text = [NSString stringWithFormat:@"Order Id: %@",[[records objectAtIndex:y] objectAtIndex:0]]; statusLabel.text = [NSString stringWithFormat:@"Status: %@",[[records objectAtIndex:y] objectAtIndex:1]]; orderDate.text = [NSString stringWithFormat:@"Date: %@",[[records objectAtIndex:y] objectAtIndex:2]]; byLabel.text = [NSString stringWithFormat:@"By: %@",[[records objectAtIndex:y] objectAtIndex:3]]; totalLabel.text = [NSString stringWithFormat:@"Total: %@",[[records objectAtIndex:y] objectAtIndex:4]]; y++; } } return cell; }Thats mean first time when table loads then value are displaying in right cell but when i start scrolling value are not displaying right cell.
Last couple of days i am being fade up with this problem so please anybody know what is solution then inform me as soon as possible…
Thanks in Advance.
i have got my answer it was very silly problem……may be it will helpful for someone…
Here is the code…i have just change the tableview delegate…