我该如何通过编程使UIImageView更改其图像?

5

I have this code:

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

首先,我使用IBOutlet创建了一个UIImageView。Landscape指向该UIImageView。在InterfaceBuilder中,我告诉它在该UIImageView中显示特定的图像。它从未更改。我总是看到我在InterfaceBuilder中指定的图像。但是我想以编程方式设置它。我该怎么做?


确保在IB中连接了插座。 - nduplessis
请看这个链接:https://dev59.com/73A75IYBdhLWcg3wYYBQ - rahul gupta
4个回答

4
尝试在更改图像后,在视图上调用setNeedsDisplay:
   [landscape setNeedsDisplay];

不应该有必要调用 setNeedsDisplay。 - nduplessis
我也没想到,但是我看了一些代码,发现它们在做完全相同的事情,而且我调用了setNeedsDisplay - 可能是不必要的,但只是随便试试。 - Eric Petroelje

2

添加以下代码,可能会对您有所帮助:

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

1
不要忘记在InterfaceBuilder中ImageView和File's Owner之间的连接。
之后你只需要这个:
landscape.image = [UIImage imageNamed:@"tenerife1.png"];

1

可能你没有为那个Nib文件设置自定义视图?我曾经遇到过同样的问题。我为那个视图控制器创建了一个UIview子类,进入Interface Builder并设置该视图为该UIView子类,然后将UIView的导入头文件添加到Controller类中。这就是我做的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接