【问题标题】: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;
    }
    

    这种方法,除了更模块化和架构合理之外,还有一个优点,如果视图控制器的视图被卸载(例如,另一个视图被推送到导航堆栈并且出现内存警告),当它重新- 加载它仍然会有图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-24
      • 2012-04-15
      • 2012-02-19
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多