2010-11-11 5 views
1

J'ai analysé les données XML d'un flux. J'ai stocké toutes les données dans NSArray. J'ai chargé les images et le titre dans UITableview en utilisant UILable. Mais quand j'utilise le parchemin, le texte sera réduit comme suit.UITableviewcell chargement des données problème

alt text

Mon code est le suivant ...

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

    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView1 dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil){ 
     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 
    }   
    CGRect frame = CGRectMake(70.0, 00.0, 250.0, 55); 
    valueField = [[UILabel alloc] initWithFrame:frame]; 
    [valueField setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin]; 
    valueField.tag = 111; 
    valueField.font=[UIFont fontWithName:@"Helvetica" size:13.0]; 
    valueField.textAlignment = UITextAlignmentLeft; 
    valueField.lineBreakMode=UILineBreakModeWordWrap; 
    valueField.numberOfLines = 0; 
    valueField.textColor = [UIColor whiteColor]; 
    valueField.text=[title1 objectAtIndex:indexPath.row]; 
    valueField.highlightedTextColor = [UIColor whiteColor]; 
    valueField.baselineAdjustment = UIBaselineAdjustmentAlignCenters; 
    valueField.adjustsFontSizeToFitWidth = YES; 
    valueField.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0]; 
    [cell.contentView addSubview:valueField]; 
    [valueField release]; 
    UIImage *patternImage = [UIImage imageNamed:@"bg.jpg"]; 
    UIView *backView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; 
    backView.backgroundColor = [UIColor colorWithPatternImage: patternImage]; 
    cell.backgroundView = backView; 
    NSString *image1 =[images objectAtIndex:indexPath.row]; 
    NSLog(@"Images ..... = %@",image1); 
    NSData *mydata = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:[images objectAtIndex:indexPath.row]]]; 
    UIImage *myimage = [[UIImage alloc] initWithData:mydata]; 
    UIImageView *imageView = [ [ UIImageView alloc ] initWithImage: myimage ]; 
    imageView.frame = CGRectMake(0.0f, 00.0f, 60.0f, 63.0f); 
    [cell.contentView addSubview:imageView]; 
    //cell.imageView.image = myimage; 
    return cell; 
} 

Je ne sais pas comment résoudre ce problème.

Répondre

2

Chaque fois que la cellule est rechargée, le UILabel est ajouté.

faire quelque chose comme

if (cell == nil) 
{ 
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 
    CGRect frame = CGRectMake(70.0, 00.0, 250.0, 55); 
    valueField = [[UILabel alloc] initWithFrame:frame]; 
    [valueField setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin]; 
    valueField.tag = 111; 
    valueField.font=[UIFont fontWithName:@"Helvetica" size:13.0]; 
    valueField.textAlignment = UITextAlignmentLeft; 
    valueField.lineBreakMode=UILineBreakModeWordWrap; 
    valueField.numberOfLines = 0; 
    valueField.textColor = [UIColor whiteColor]; 
    valueField.highlightedTextColor = [UIColor whiteColor]; 
    valueField.baselineAdjustment = UIBaselineAdjustmentAlignCenters; 
    valueField.adjustsFontSizeToFitWidth = YES; 
    valueField.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0]; 
    [cell.contentView addSubview:valueField]; 
    [valueField release]; 
} 
valueField.text=[title1 objectAtIndex:indexPath.row]; 
+0

+1 Merci pour votre réponse aimablement. Ça fonctionne bien. Mon problème est résolu. Merci. – Velmurugan

0

Pour être plus précis, puisque vous êtes des cellules dequeuing, lorsque vous appelez cellForRowAtIndexPath il peut potentiellement vous retourner une cellule qui a déjà été créé.

Cette cellule a déjà une étiquette créée.

Alors toute la magie de la création et la mise en place des vues personnalisées en vous la cellule ne doit être effectuée lorsque dequeueReusableCellWithIdentifier retourne une valeur nil

Questions connexes