UIImageView не отображается в заголовке UITableView
-
03-07-2019 - |
Вопрос
Моя проблема в том, что, похоже, я не могу заставить изображение из моего пакета отображаться должным образом.Этот метод находится в контроллере представления, который управляет tableview. Просмотр заголовка загружается вместе с tableview в файле .nib и содержит несколько UILabels (не показаны), которые загружаются просто отлично.Есть какие-нибудь идеи?
- (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];
}
Решение
Если вы уже создали выход и подключили его к представлению в Interface Builder, вам следует использовать это представление, а не создавать UIImageView "на лету".
//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];
Другие советы
Сначала вам нужно выяснить, правильно ли загружается ваше изображение.Самый быстрый способ получить изображение - использовать удобный метод UIImage +[UIImage imageNamed:rawImageName].
Кроме того, является ли это UITableViewController?(это неясно, но подразумевается).
Где используется ImageView?Вы создаете его в самом низу, но, похоже, ничего с ним не делаете.Вероятно, вы захотите создать представление изображения, присвоить ему изображение, а затем добавить его в качестве подвида к заголовку.
//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];
Добавление вложенного представления программно сработало, но оно некорректно связано с UIImageView - просмотр пользовательского интерфейса в конструкторе интерфейсов.Созданное мной представление (я думаю) корректно связано с выходом UIView в моем UITableViewController, но когда я инициализирую свой ImageView, он создает новый вид вместо того, чтобы помещать изображение в уже созданный мной вид.
Спасибо за ваш ответ.
Видишь http://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html Он будет отображать UIImageView в заголовке раздела.