回收父ViewController的UIImage

时间:2012-07-19 10:21:39

标签: iphone ios xcode ios5

我的ViewController创建了60个小UIViews。每个都需要相同jpg的UIImage(在UIImageView中使用)。

我的理论是,不是每个UIView都创建自己的UIImage,最好重用一个在ViewController中定义的UIImage。

ViewController代码:

UIImage *reuseableUIImage = [UIImage imageNamed:@"LittlePicture.jpg"];

for (i=0; i<60; i++){
    [arrayOfUIViews addObject:[[myUIViewMaker alloc] init...]];
}

我的理论错了吗?我应该继续在每个UIView中创建UIImage吗?

如果我的理论很好,我的UIViews如何定位父ViewController的UIImage? 我不知道语法。为了说明(糟糕),UIView中的代码将类似于

finalUIImageView = [[UIImageView alloc] initWithImage:self.parentViewController.reuseableUIImage];

1 个答案:

答案 0 :(得分:2)

您的代码看起来不错,应该可以正常运行。您需要在viewController上定义一个属性来保存UIImage。

您将从中获得的主要好处是加载图像的时间只会发生一次。如果为每个视图分配和初始化图像,则每次都必须加载图像。

编辑:

再次考虑它,最好的方法是在初始化时将图像传递到子视图中。

UIImage *reuseableUIImage = [UIImage imageNamed:@"LittlePicture.jpg"];

for (i=0; i<60; i++){
    [arrayOfUIViews addObject:[[myUIViewMaker alloc] initWithImage:reusableUIImage]];
}

myUIViewMaker类中的init方法将实现为:

-(id)initWithImage:(UIImage *)image
{
    self = [super init];
    if (self) {
        finalUIImageView = [[UIImageView alloc] initWithImage:image];  
    }
    return self;
}