Pregunta

Mi problema es que parece que no consigo que la imagen de mi paquete se muestre correctamente. Este método está en el controlador de vista que controla la vista de tabla. headerView se carga con la vista de tabla en el archivo .nib y contiene algunos UILabels (no se muestran) que se cargan bien. ¿Alguna 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];
}
¿Fue útil?

Solución

Si ya ha creado un tomacorriente y lo ha conectado a una vista en Interface Builder, debería usar esa vista, en lugar de crear un UIImageView sobre la marcha.


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

Otros consejos

Primero debes averiguar si tu imagen se está cargando correctamente. La forma más rápida de obtener una imagen es usar el método de conveniencia UIImage + [UIImage imageNamed: rawImageName].

Además, ¿es esto un UITableViewController? (No está claro, pero está implícito).

¿Dónde se está utilizando imageView? Lo creas cerca del fondo, pero parece que no haces nada con él. Probablemente desee crear la vista de imagen, asignarle una imagen y luego agregarla como una subvista al 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];

Agregar la subvista programáticamente funcionó, pero no está correctamente vinculada a UIImageView en Interface Builder. La vista que creé está (creo) correctamente vinculada a la salida de UIView en mi UITableViewController , pero cuando inicio mi imageView crea una nueva vista en lugar de poner la imagen en la vista que ya he creado.

Gracias por tu respuesta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top