Iphone 如何使UIImageView以编程方式更改其图像?

Iphone 如何使UIImageView以编程方式更改其图像?,iphone,uiimageview,Iphone,Uiimageview,我有以下代码: - (void)viewDidLoad { [super viewDidLoad]; landscape.image = [UIImage imageNamed:@"tenerife1.png"]; } 首先,我用IBOutlet创建了一个UIImageView。横向指向该UIImageView。在InterfaceBuilder中,我告诉我在UIImageView中显示一个特定的图像。它永远不会改变。我总是看到我在InterfaceBuilder中指定的图像。但是我想通过编程

我有以下代码:

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

首先,我用
IBOutlet
创建了一个
UIImageView
。横向指向该
UIImageView
。在
InterfaceBuilder
中,我告诉我在
UIImageView
中显示一个特定的图像。它永远不会改变。我总是看到我在
InterfaceBuilder
中指定的图像。但是我想通过编程来设置它。如何执行此操作?

更改图像后,请尝试在视图上调用setNeedsDisplay:

   [landscape setNeedsDisplay];

添加此代码,它可能会帮助您:

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

您是否可能没有为该nib文件设置自定义视图?我也有同样的问题。我为该视图控制器创建了一个UIview子类,进入Interface Builder并将视图设置为该UIview子类,然后将UIview的导入头添加到控制器类中。这就是它为我所做的

不要忘记InterfaceBuilder中imageview和文件所有者之间的连接

在那之后,你只需要:

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

确保插座已连接到IBE中,请参见此------不需要调用setNeedsDisplay我也不这么认为,但我正在查看一些代码,这些代码正在执行完全相同的操作,我正在调用setNeedsDisplay-可能没有必要,但只是将其扔到了那里。