UIImageView não exibir em UITableView cabeçalho
-
03-07-2019 - |
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];
}
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.
http://developer.apple.com/ biblioteca / ios / # SampleCode / TableViewUpdates / Introdução / intro.html Ele irá exibir UIImageView no cabeçalho da seção.