2010-09-13 5 views
2

J'ai une cellule de tableau à laquelle j'ajoute des sous-vues par programme. Toutes les sous-vues textuelles fonctionnent bien, mais je ne peux pas faire fonctionner une sous-vue d'image.UIImageView n'apparaît tout simplement pas dans la personnalisation UITableViewCell

Vous remarquerez que j'ai défini la couleur d'arrière-plan au noir. C'est simplement pour m'indiquer que la sous-vue est en train d'être initialisée et positionnée correctement dans la cellule. Lorsque je supprime la couleur de fond, il n'y a rien.

En outre, le style de cellule est UITableViewCellStyleDefault mais je ne pense pas que ce soit pertinent pour les sous-vues personnalisées. Je veux que l'image soit positionnée sur la droite, c'est pourquoi je n'utilise pas la propriété standard imageView que les cellules offrent.

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

    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 

     // ... add textual views ... 

     UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"clock.png"]]; 
     img.frame = CGRectMake(271.0f, 10.0f, 19.0f, 22.0f); 
     img.backgroundColor = [UIColor blackColor]; 

     [cell addSubview:img]; 
    } 

    // ... more code ... 

    return cell; 
} 
+0

Êtes-vous sûr que clock.png est ajouté à votre projet? – tidwall

+0

Oui. C'est dans un sous-groupe imbriqué dans mon projet, mais cela n'a pas d'importance pour d'autres images. L'image s'affiche correctement lorsque je l'ai définie via un ImageView dans IB et que j'utilise une cellule créée par IB (que je ne peux pas faire maintenant pour des raisons complètement différentes ...). – thebossman

+0

Où est votre référence à votre cellule personnalisée? – Sharme

Répondre

0

Votre code semble très bien dans une certaine mesure. Un problème que j'avais quand je créais mes propres UITableViewCells dans le code était que je créais les cellules avec des variables comme vous êtes mais vous ne devriez pas faire cela.

Ce que vous devez faire est de créer la cellule, puis définir les variables. Si les cellules sont différentes, vous devez utiliser différents identifiants de réutilisation. J'espère que cela a du sens si vous ne le faites pas savoir et je mettrai à jour.

+0

Je ne suis pas sûr de savoir de quelles variables vous parlez; il y en a plusieurs dans mon exemple seul. :) Pouvez-vous spécifier exactement lesquels? – thebossman

+0

L'image. Chaque cellule que vous allez retourner contient une image d'horloge – Rudiger

Questions connexes