2009-04-01 3 views
5

У меня есть этот код:Как я могу сделать UIImageView программным образом изменить его изображение?

- (void)viewDidLoad { 
[super viewDidLoad]; 
landscape.image = [UIImage imageNamed:@"tenerife1.png"]; 
} 

Сначала я создал UIImageView с IBOutlet. Пейзаж указывает на то, что UIImageView. В InterfaceBuilder я сказал показать конкретное изображение в том, что UIImageView. Это никогда не меняется. Я всегда вижу изображение, указанное в InterfaceBuilder. Но я хочу установить его программным путем. Как я могу это сделать?

+0

Убедитесь, что розетка подключена в IB – nduplessis

+0

см это ----- http://stackoverflow.com/questions/3321374/cocoa -touch-add-a-uiimageview-программно –

ответ

1

возможно вы не имеете набор пользовательских вид для этого файла nib? У меня такая же проблема. Я создал подкласс UIview для этого контроллера представлений, зашел в Interface Builder и установил представление для этого подкласса UIView, а затем добавил заголовок импорта для UIView в класс Controller. thats, что это для меня

4

Попробуйте позвонить setNeedsDisplay по мнению после изменения изображения:

[landscape setNeedsDisplay]; 
+0

Не должно быть необходимости звонить setNeedsDisplay – nduplessis

+0

Я тоже так не думал, но я искал какой-то код, который у меня был, что делал то же самое, и я звонил setNeedsDisplay - возможно, не нужен, но просто выбрасывал его. –

2

Добавить этот код, он может помочь вам:

-(void)viewDidAppear:(BOOL)animated 
{ 
landscape.image = [UIImage imageNamed:@"tenerife1.png"]; 
} 
1

Не забывайте о связи между imageview и владельцем файла в InterfaceBuilder.

это только после того, как вам нужно, чтобы:

landscape.image = [UIImage imageNamed:@"tenerife1.png"];