无法更改UIImageView的图像

时间:2012-01-14 13:32:38

标签: ios uiimageview

·H

IBOutlet UIImageView *photoImageView;
UIImage *photo;

.m(在viewWillAppear中)

photoImageView.image = photo;

查看后,我无法使用以下内容更改photoImageView

photoImageView.image = [UIImage imageNamed:@"XXX.png"];

但更改photo的值有效。

photo = [UIImage imageNamed:@"XXX.png"];

它是如何运作的?

1 个答案:

答案 0 :(得分:5)

试试这段代码。

//YourController.h

@interface YourController : UIViewController
{
    UIImageView* _photoImageView;
}

@property (retain, nonatomic) IBOutlet UIImageView *photoImageView;

- (IBAction)changeImageAction:(id)sender;

@end

//YourController.m

@synthesize photoImageView = _photoImageView;

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.photoImageView.image = [UIImage imageNamed:@"img.png"];
}

- (IBAction)changeImageAction:(id)sender {

    self.photoImageView.image = [UIImage imageNamed:@"img_2.png"];
}

一些说明。

首先,您必须在XCode中正确链接photoImageView IBOutlet。出于测试目的,我创建了一个链接到UIButton的测试按钮(IBAction)。 UIImageView和测试按钮(我用IB创建)都是YourController视图的孩子。

请务必将您的图片导入您的项目,并在deallocviewDidUnload中释放记忆。

- (dealloc)
{
   [_photoImageView release];
   _photoImageView = nil;

   [super dealloc]
}

- (void)viewDidUnload
{
   [super viewDidUnload];

   self.photoImageView = nil;
}

希望它有所帮助。

修改

代码不是面向ARC的,但是几乎没有修改,也可以使用ARC运行它。