Ios Can';t更改UIImageView的图像
h .m(将在视图中显示) 视图出现后,我无法使用以下命令更改Ios Can';t更改UIImageView的图像,ios,uiimageview,Ios,Uiimageview,h .m(将在视图中显示) 视图出现后,我无法使用以下命令更改photoImageView: photoImageView.image = photo; 但是更改photo的值是可行的 photoImageView.image = [UIImage imageNamed:@"XXX.png"]; 它是如何工作的?试试这段代码 photo = [UIImage imageNamed:@"XXX.png"]; 一些注释。 首先,您必须在XCode中正确链接您的photoImageViewIBO
photoImageView
:
photoImageView.image = photo;
但是更改photo
的值是可行的
photoImageView.image = [UIImage imageNamed:@"XXX.png"];
它是如何工作的?试试这段代码
photo = [UIImage imageNamed:@"XXX.png"];
一些注释。
首先,您必须在XCode中正确链接您的photoImageView
IBOutlet。出于测试目的,我创建了一个链接到iAction
的测试按钮(UIButton
)。UIImageView
和test按钮(我都是用IB创建的)是YourController
视图的孩子
请记住将图像导入项目,并在dealloc
和viewDidUnload
中释放内存
//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"];
}
希望能有帮助
编辑
代码不是面向ARC的,但经过少量修改后,也可以使用ARC运行代码。您是说,如果更改iVar“照片”,photoImageView中的图像也会更改吗?根据您目前展示的内容,它不应该这样做,但您可能需要发布更多代码,以便让我们更好地了解正在发生的事情。您是直接更改iVar还是使用属性访问器?如果您使用的是属性访问器,它是如何实现的?他不希望出现这种情况的解决方案。他只是想知道为什么会发生这样的事@samfisher你说得对!但提供我认为正确的步骤,可能有助于理解正在发生的事情。谢谢
//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"];
}
- (dealloc)
{
[_photoImageView release];
_photoImageView = nil;
[super dealloc]
}
- (void)viewDidUnload
{
[super viewDidUnload];
self.photoImageView = nil;
}