【问题标题】:UIImageView weird image property issueUIImageView 奇怪的图像属性问题
【发布时间】:2011-06-23 00:27:29
【问题描述】:
我正在处理一个超级简单的任务,但不知何故引入了一些困难......
我要做的就是创建一个视图控制器并将其 UIImageView 的图像属性设置为某个图像。
当我尝试这样做时,我得到 nil =\
GenericViewController *genericViewController = [[GenericViewController alloc] init];
UIImage *image = [UIImage imageNamed:@"Camera.png"];
genericViewController.genericImageView.image = image;
NSLog(@"%@", genericViewController.genericImageView.image);
输出:(空)
【问题讨论】:
标签:
iphone
objective-c
iphone-sdk-3.0
ios4
uiimageview
【解决方案1】:
我想genericImageView 设置在笔尖或-loadView 方法中。但是,在您尝试访问图像视图时,VC 的视图尚未加载。快速解决方法是调用
(void)genericViewController.view;
在访问genericImageView 之前。这将强制加载视图。 “更好”的方法是给 genericViewController 一个你分配给的图像属性,然后在它的设置器中你可以说
- (void)setGenericImage:(UIImage *)image {
if (_genericImage != image) {
[_genericImage release];
_genericImage = [image retain];
if ([self isViewLoaded]) {
self.genericImageView.image = image;
}
}
}
在-viewDidLoad 你可以说
- (void)viewDidLoad {
[super viewDidLoad];
self.genericImageView.image = self.genericImage;
}
这种方法,除了更模块化和架构合理之外,还有一个优点,如果视图控制器的视图被卸载(例如,另一个视图被推送到导航堆栈并且出现内存警告),当它重新- 加载它仍然会有图像。