UIImageView не появляется

Я пытаюсь программно работать с UIImageView и не могу заставить его отображаться на экране. В моем заголовке у меня есть следующие строки:

@interface myClass : UIView {
    UIImageView *imageView;
}
@property (nonatomic, readonly) IBOutlet UIImageView *imageView;

Затем в моем viewWillAppear у меня есть следующее:

self.imageView.frame = CGRectMake(10, 10, 72, 72);
self.imageView.backgroundColor = [UIColor redColor];
[self.imageView setImage:[UIImage imageNamed:@"test-image.png"]];
[containerView addSubview:self.imageView];

А это вообще не работает. Если я добавлю следующие строки в viewWillAppear, я смогу отобразить UIImageView:

UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"blue_button_bg.png"]];
[containerView addSubview:imgView];

Поэтому я не могу понять, почему создание экземпляра UIImageView будет работать, а использование ivar класса — нет. Что я здесь делаю неправильно?

Большое тебе спасибо!


person Hargrove Smitey    schedule 11.03.2010    source источник


Ответы (2)


Вы должны создать экземпляры всех объектов. Один из способов сделать это, если вы хотите сохранить ссылку на imageView, это... (не забудьте освободить его в Dealloc).

 imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"blue_button_bg.png"]];
[containerView addSubview:imageView];

С остальным можно разобраться ;)

person Jordan    schedule 11.03.2010

Уберите IBOutlet и добавьте:

self.imageView = [[ImageView alloc]...]
person Tuomas Pelkonen    schedule 11.03.2010
comment
Вероятно, вы также можете удалить всю строку @property, если изображение используется только в myClass. - person Tuomas Pelkonen; 12.03.2010