2010-06-17 5 views
1

J'essaie de placer un UIImageView dans un UITableViewCell. Je crée une vue spéciale appelée ProductView.UIImageView dans UITableCell obtient une taille étrange

Dans cette vue, j'ai plusieurs composants, l'un d'entre eux étant un UIImageView. J'ai défini cette vue ProductView en tant que contenu de UITableViewCell. Tout est dessiné correctement sauf le UIImageView. UIImageView est mis à l'échelle de façon insignifiante. Sa hauteur est deux fois plus grande que la taille de la cellule du tableau. J'ai passé des heures à essayer de résoudre ce problème. J'ai mis le cadre de UIImageView manuellement, j'ai appelé la méthode drawRect de UIImage dans UIImageView, aucun d'eux n'a fonctionné.

Je pense à remplacer UITableView par un UIScrollView si je ne trouve pas de solution. Est-ce que quelqu'un sait comment résoudre ce problème?

+0

J'ai décidé d'essayer la même chose en sous-classant la classe UITableViewCell. Je publierai des résultats bientôt. –

Répondre

0

Utilisez les cellules personnalisées et placez tous les composants de l'interface utilisateur à l'intérieur de cette cellule, (y compris le UIImageView), et méthode cellForRowAtIndexPath, définissez l'image comme suit:

[cell.imgView setContentMode:UIViewContentModeScaleAspectFit]; 
[cell.imgView setFrame:CGRectMake(cell.imgView.frame.origin.x, cell.imgView.frame.origin.y, 120, 79)];  
[cell.imgView setImage:[UIImage imageNamed:@"image.png"]];   

Et si vous avez besoin de savoir comment d'utiliser des cellules personnalisées, suivez ce tutoriel:

iPhone Programming Tutorial: Part 6: Creating custom UITableViewCell Using Interface Builder [UITableView]

Hope this vous aide ...

+0

Merci pour votre réponse. Malheureusement, je n'ai pas eu le temps d'essayer votre solution. J'ai résolu le problème en utilisant un UIScrollView au lieu de UITableView. Je garderai à l'esprit votre conseil la prochaine fois. –

0

J'ai eu t Le même problème et réalisé à la fin que le problème n'avait rien à voir avec le redimensionnement automatique, c'était simplement que je n'obtenais pas le UIImageView, mais sa vue parente (la cellule du tableau), en raison de valeurs obtenir la vue par l'appel UIImageView *pictureView = (UIImageView *)[cell viewWithTag:0]; et l'étiquette zéro a également été mis sur la cellule). Corrigé en changeant simplement la valeur de l'étiquette.

Questions connexes