Domanda

Il mio problema è che non riesco a visualizzare correttamente l'immagine dal mio pacchetto. Questo metodo si trova nel controller della vista che controlla la vista tabella. headerView viene caricato con la vista tabella nel file .nib e contiene alcuni UILabels (non mostrati) che si caricano bene. Qualche idea?

- (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];
}
È stato utile?

Soluzione

Se hai già creato un outlet e lo hai collegato a una vista in Interface Builder, dovresti usare quella vista, piuttosto che creare un UIImageView al volo.


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

Altri suggerimenti

Per prima cosa devi capire se l'immagine si sta caricando correttamente. Il modo più rapido per ottenere un'immagine è utilizzare il metodo di convenienza UIImage + [UIImage imageNamed: rawImageName].

Inoltre, si tratta di un UITableViewController? (non è chiaro, ma implicito).

Dove viene utilizzato imageView? Lo crei vicino al fondo, ma non sembra farci niente. Probabilmente desideri creare la vista immagine, assegnarle un'immagine e quindi aggiungerla come vista secondaria a 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];

L'aggiunta della sottoview ha funzionato programmaticamente, ma non è correttamente collegata a UIImageView in Interface Builder. La vista che ho creato è (credo) correttamente collegata alla presa UIView nel mio UITableViewController , ma quando avvio la mia imageView crea una nuova vista invece di mettere l'immagine nella vista che ho già creato.

Grazie per la risposta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top