UIImageView non viene visualizzato nell'intestazione UITableView
-
03-07-2019 - |
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];
}
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.
Vedi http://developer.apple.com/ biblioteca / ios / # SampleCode / TableViewUpdates / Introduzione / intro.html Visualizzerà UIImageview sull'intestazione della sezione.