Custom Cell et superposition

citrix6citrix6 Membre
juin 2013 modifié dans API UIKit #1

Bonjour .


Je pensais avoir résolue mon problème mais Non !


 


Donc je charge mon tableView a chaque fois que je scroll ce qui fait une superposition des labels et des images donc j'ai cherché des solutions j'en ai trouvé, mais aucune ne me plait elle ralentisse mon application.


 


Je recherche la meilleur méthode pour cela !


Merci d'avance de vos réponse :)



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @Cell;
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    if (cell == nil) {
        cell = [[UITableViewCell alloc]init];
    }  
    NSString *string = [NSString stringWithFormat:@%@",[responseJSON valueForKeyPath:@feed.entry.media$group.media$thumbnail.url][indexPath.row][0]];
    NSError *error = NULL;
    // REGEX
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@0.jpg options:NSRegularExpressionCaseInsensitive error:&error];
    NSString *imgUrl = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@mqdefault.jpg];
    
UILabel *labelTitre = [[UILabel alloc] initWithFrame:CGRectMake(100, 0, 320, 180)];
    labelTitre.backgroundColor = [UIColor clearColor];
    labelTitre.text = [responseJSON valueForKeyPath:@feed.entry.title.$t][indexPath.row];
NSLog(@%@",[responseJSON valueForKeyPath:@feed.entry.link.href][indexPath.row][0]);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 180)];
    [myImage setImageWithURL:[NSURL URLWithString:imgUrl] placeholderImage:[UIImage imageNamed:@noimage.jpg]];
    [cell.contentView addSubview:myImage];
    [cell.contentView addSubview:labelTitre];
return cell;
}

Réponses

  • J'ai pas tout regardé, je me suis arrêté à  l'init de ta cell.


    Je te conseille d'aller lire la doc sur UITableViewCell. Il faudrait que tu utilises :



    - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  • citrix6citrix6 Membre
    juin 2013 modifié #3

    Je test


  • c'est bon grâce à  toi Kerbernan :)  j'ai utilisé UITableViewCell


     


    - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier



    {
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
        if (self) {

            self.titreLabel =  [[UILabel alloc] initWithFrame:CGRectMake(95, 10, 230, 14)];
            self.titreLabel.font = [UIFont fontWithName:@Arial size:12.0f];

            self.vueLabel = [[UILabel alloc]initWithFrame:CGRectMake(95, 40, 230, 14)];
            self.vueLabel.font = [UIFont fontWithName:@Arial size:12.0f];

            self.myImage = [[UIImageView alloc] initWithFrame:CGRectMake(5, 10, 80, 45)];
            
            
            [self addSubview:self.myImage];
            [self addSubview:self.titreLabel];
            [self addSubview:self.vueLabel];

        }
        return self;
    }

    Cela simplifie mon code et ne ralentie pas l'application :) voila PARFAIT 


  • AliGatorAliGator Membre, Modérateur
    Bah c'est ce qui est expliqué en long, large et travers dans la Table View Programming Guide d'Apple, en même temps...
Connectez-vous ou Inscrivez-vous pour répondre.