Question

Mon problème est que je n'arrive pas à obtenir correctement l'image de mon ensemble. Cette méthode est dans le contrôleur de vue qui contrôle la vue de table. headerView est chargé avec la vue table dans le fichier .nib et contient quelques étiquettes UIL (non affichées) qui se chargent parfaitement. Des idées?

- (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];
}
Était-ce utile?

La solution

Si vous avez déjà créé un point de vente et que vous l'avez connecté à une vue dans Interface Builder, vous devez utiliser cette vue plutôt que de créer un 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];

Autres conseils

Tout d'abord, vous devez déterminer si votre image se charge correctement. Le moyen le plus rapide d’obtenir une image consiste à utiliser la méthode pratique UIImage + [UIImage imageNamed: rawImageName].

Aussi, s'agit-il d'un UITableViewController? (ce n'est pas clair, mais sous-entendu).

Où imageView est-il utilisé? Vous le créez près du bas, mais vous ne semblez rien en faire. Vous souhaitez probablement créer la vue d'image, lui attribuer une image, puis l'ajouter en tant que sous-vue à l'entêteView.


   //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];

L'ajout de la sous-vue a fonctionné par programme, mais il n'est pas correctement lié au UIImageView dans Interface Builder. La vue que j'ai créée est (je pense) correctement liée à la sortie UIView dans mon UITableViewController , mais lorsque je lance mon imageView, elle crée une nouvelle vue au lieu de placer l'image dans la vue que j'ai déjà créée.

Merci pour votre réponse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top