·H
IBOutlet UIImageView *photoImageView;
UIImage *photo;
.m(在viewWillAppear中)
photoImageView.image = photo;
查看后,我无法使用以下内容更改photoImageView
photoImageView.image = [UIImage imageNamed:@"XXX.png"];
但更改photo
的值有效。
photo = [UIImage imageNamed:@"XXX.png"];
它是如何运作的?
答案 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
视图的孩子。
请务必将您的图片导入您的项目,并在dealloc
和viewDidUnload
中释放记忆。
- (dealloc)
{
[_photoImageView release];
_photoImageView = nil;
[super dealloc]
}
- (void)viewDidUnload
{
[super viewDidUnload];
self.photoImageView = nil;
}
希望它有所帮助。
修改强>
代码不是面向ARC的,但是几乎没有修改,也可以使用ARC运行它。