2008-10-16 18 views
4

Mon problème est que je n'arrive pas à obtenir l'image de ma liasse pour qu'elle s'affiche correctement. Cette méthode est dans le contrôleur de vue qui contrôle la vue de table. headerView est chargé avec la tableview dans le fichier .nib et contient quelques UILabels (non représentés) qui se chargent très bien. Des idées?UIImageView ne s'affiche pas dans l'en-tête UITableView

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [[self view] setTableHeaderView:headerView]; 
    NSBundle *bundle = [NSBundle mainBundle]; 
    NSString *imagePath = [bundle pathForResource:@"awesome_lolcat" ofType:@"jpeg"]; 
    UIImage *image = [UIImage imageWithContentsOfFile:imagePath]; 
    imageView = [[UIImageView alloc] initWithImage:image]; 
} 

Répondre

4

Si vous avez déjà créé une sortie et l'avez connectée à une vue dans Interface Builder, vous devez utiliser cette vue plutôt que de créer une UIImageView à la volée.


    //this assumes that headerView is an already created UIView, perhaps an IBOutlet 
    //also, imageViewOutlet is an IB outlet hooked up to a UIImageView, and added as 
    //a subview of headerView. 

    //you can also set the image directly from within IB 
    imageViewOutlet.image = [UIImage imageNamed: @"awesome_lolcat.jpeg"]; 
    [[self view] setTableHeaderView: headerView]; 

+0

Parfait! Merci Ben. – kubi

+0

mis à jour pour le nom de l'image lolcat. plus c'est correct. –

4

Vous devez d'abord savoir si votre image se charge correctement. Le moyen le plus rapide d'obtenir une image est d'utiliser la méthode pratique UIImage + [UIImage imageNamed: rawImageName].

Aussi, est-ce un UITableViewController? (Ce n'est pas clair, mais implicite).

Où est-ce que imageView est utilisé? Vous le créez près du fond, mais ne semblez rien faire avec. Vous souhaitez probablement créer l'affichage de l'image, lui affecter une image, puis l'ajouter en tant que sous-vue à headerView.


    //this assumes that headerView is an already created UIView, perhaps an IBOutlet 

    UIImage  *image = [UIImage imageNamed: @"awesome_lolcat.jpeg"]; 
    UIImageView *imageView = [[UIImageView alloc] initWithImage: image]; 
    [headerView addSubview: [imageView autorelease]]; 
    [[self view] setTableHeaderView: headerView]; 

0

Ajout du sous-vue travaillé programatically, mais il est pas correctement lié à la UIImageView dans Interface Builder. La vue que j'ai créée est (je pense) correctement liée à la sortie UIView dans mon UITableViewController, mais quand j'init mon imageView il crée une nouvelle vue au lieu de mettre l'image dans la vue que j'ai déjà créée.

Merci pour votre réponse.