Pergunta

O meu problema é que eu não consigo obter a imagem de minha bundle para exibir corretamente. Este método é no controlador de visualização, que controla o tableview. headerView é carregado com o tableview no arquivo .nib e contém algumas UILabels (não mostrados) que a carga apenas multa. Alguma idéia?

- (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];
}
Foi útil?

Solução

Se você já criou uma tomada e conectá-lo a uma vista no Interface Builder, você deve usar esse ponto de vista, em vez de criar um UIImageView na mosca.


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

Outras dicas

Primeiro você precisa descobrir se sua imagem está sendo carregado corretamente. A maneira mais rápida de obter uma imagem é usar o método de UIImage conveniência + [UIImage imageNamed: rawImageName].

Além disso, este é um UITableViewController? (Não está claro, mas implícita).

Onde está imageView sendo usado? Criá-lo perto do fundo, mas não parecem fazer nada com ele. Você provavelmente vai querer criar a visualização de imagem, atribuir-lhe uma imagem e, em seguida, adicioná-lo como um subexibição ao 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];

Adicionando o subexibição programaticamente trabalhou, mas não está corretamente ligado à UIImageView no Interface Builder. A visão que eu criei é (eu acho) correctamente ligada à tomada de UIView no meu UITableViewController , mas quando eu o init meu imageView ele cria uma nova vista em vez de colocar a imagem no modo de exibição que já criou.

Obrigado por sua resposta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top