CGImageRef改变了

时间:2012-08-26 05:14:08

标签: iphone ios xcode cocoa-touch cgimageref

那里。如何从另一个ViewController中查找CGImageRef?

我有这段代码:

#import "ScratchableView.h"

@implementation ScratchableView

- (id)initWithFrame:(CGRect)frame {

    self = [super initWithFrame:frame];
    if (self) {

      //init with the scratchable gray image




           scratchable = [UIImage imageNamed:@"image.jpg"].CGImage;

            width = CGImageGetWidth(scratchable);
    height = CGImageGetHeight(scratchable);

    self.opaque = NO;
    CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceGray();

    CFMutableDataRef pixels = CFDataCreateMutable( NULL , width * height );
    alphaPixels = CGBitmapContextCreate( CFDataGetMutableBytePtr( pixels ) , width , height , 8 , width , colorspace , kCGImageAlphaNone );
    provider = CGDataProviderCreateWithCFData(pixels);

    CGContextSetFillColorWithColor(alphaPixels, [UIColor blackColor].CGColor);
    CGContextFillRect(alphaPixels, frame);

    CGContextSetStrokeColorWithColor(alphaPixels, [UIColor whiteColor].CGColor);
    CGContextSetLineWidth(alphaPixels, 30.0);
    CGContextSetLineCap(alphaPixels, kCGLineCapSquare);

    CGImageRef mask = CGImageMaskCreate(width, height, 8, 8, width, provider, nil, NO);
    scratched = CGImageCreateWithMask(scratchable, mask);



    CGImageRelease(mask);
    CGColorSpaceRelease(colorspace);

    }
    return self;
}

现在从另一个视图控制器我想用image2.jpg更改image.jpg。请帮助我,我该怎么做?

我尝试使用app委托,使用nsstrings,但没有成功。我是初学者。

1 个答案:

答案 0 :(得分:0)

让一个对象影响另一个对象的两种常用方法是提供可以设置的公共属性,或者在类上提供方法+参数。在这两种情况下,想要进行更改的对象都需要某种方式来访问第二个对象。常见的方法是在UINavigation viewControllers数组中找到它,或者通过tabDelegate在tabBarController中找到它,或者第二个类是单例,可以通过向类对象询问引用来找到它。

当你解决这个问题时,调用类会做类似的事情,发送一条带有这个签名的消息:

- (BOOL)updateImage:(CGImageRef)theNewImage