开发者

UITableView Data insertion

开发者 https://www.devze.com 2023-02-18 20:27 出处:网络
I have a problem on uitableview, I have taken 3 sections in grouped table, Inserted data for each section by using indexPath.section all is well but 3rd section is filled with both 1st and 2nd section

I have a problem on uitableview, I have taken 3 sections in grouped table, Inserted data for each section by using indexPath.section all is well but 3rd section is filled with both 1st and 2nd section data, How to remove that data and how to fill my own data means separate data? Code is:-

 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    if (section == 0) {

        return @"Product Details";
    }

    if (section == 1) {

        return @"Ingredients";
    }
    if (section == 2) {
        return @"My Allergies";
    }
return nil;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{

    if (indexPath.section == 0) {
        return 150;
    }   
    if (indexPath.section == 1) {
        return 100;
    }
    if (indexPath.section==2) {
        return 45;
    }


    return 0;

}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (cell == nil) 

    {

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

     }
    NSMutableString *redStr1 =[[NSMutableString alloc] initWithString:@"No" ];
    NSMutableString *yellowStr1 =[[NSMutableString alloc] initWithString:@"No" ];
    NSMutableString *greenStr1 =[[NSMutableString alloc] initWithString:@"No" ];


    int a = [appDelegate.reIndex intValue];


    NSDictionary *aDict1   = [[NSDictionary alloc]init];
    aDict1 = [appDelegate.ProductArray objectAtIndex:a];

    // NSMutableString *str = [aDict1 objectForKey:@"IngredientInfo"];

    NSMutableArray *array =[aDict1 objectForKey:@"IngredientInfo1"];    
    NSMutableString *nameStr =  [[NSMutableString alloc] init];
    NSMutableString *nameClr =  [[NSMutableString alloc] init];



    for (int s=0; s<[array count]; s++) {
        NSDictionary *nameDict = [array objectAtIndex:s];
        [nameStr appendString:[nameDict objectForKey:@"Name"]];
        nameClr = [nameDict objectForKey:@"HalaStatus"];

        if ([nameClr isEqualToString:@"Red"]) {

            [redStr1 setString:@"Yes"];
        }

        if ([nameClr isEqualToString:@"Yellow"]) {
            [yellowStr1 setString:@"Yes"];
        }

        if ([nameClr isEqualToString:@"Green"]) {
            [greenStr1 setString:@"Yes"];
        }

        if (s == [array count]-1) {
            [nameStr appendFormat:@"."]; 
        }
        else {
            [nameStr appendFormat:@","];
        }

    }


if (indexPath.section == 0) 
    {

    cell.userInteractionEnabled =NO;
    imgview1 = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"images (1).jpg"] ];
    [imgview1 setFrame:CGRectMake(12, 2, 100, 145)];
    [cell addSubview:imgview1];
        [imgview1 release];

    imgview = [[UIImageView alloc]initWithFrame:CGRectMake(255,2 , 50, 45)];
    [cell addSubview:imgview];
    if ([redStr1 isEqualToString:@"Yes"]) {
        [imgview setImage:[UIImage imageNamed:@"Red.png"]];
    }
    if ([redStr1 isEqualToString:@"No"] && [yellowStr1 isEqualToString:@"Yes"] ) {
        [imgview setImage:[UIImage imageNamed:@"Yellow.png"]];
    }
    if ([redStr1 isEqualToString:@"No"] && [yellowStr1 isEqualToString:@"No"] && [greenStr1 isEqualToString:@"Yes"]) {
        [imgview setImage:[UIImage imageNamed:@"Green.png"]];
    }

    }


 if (indexPath.section == 1) {
    UITextView *textview1;
    textview1 =[[UITextView alloc]initWithFrame:CGRectMake(12, 2, 294, 96)];
    textview1.text = nameStr;
    textview1.editable =NO;
    [textview1 setFont:[UIFont systemFontOfSize:15]];
    [开发者_如何学Gocell addSubview:textview1];



}


if (indexPath.section == 2) {


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

}

return cell;
}


if you have an array and access this in cellForRowAtIndexPath: with indexPath.row you will get for all sections the same lets say three elements.

What you have to do is an array inside an array:

Level 1 Section 1
  Level 2 Row 1
  Level 2 Row 2
  Level 2 Row 3
Level 1 Section 2
  Level 2 Row 1
  Level 2 Row 2
Level 1 Section 3
  Level 2 Row 1
  Level 2 Row 2
  Level 2 Row 3
0

精彩评论

暂无评论...
验证码 换一张
取 消