0

そこの。別の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;
}

今、別のView Controllerから、image.jpgをimage2.jpgに変更したいと思います。どうすればそれができますか?

nsstringsを使用してアプリデリゲートを試しましたが、成功しませんでした。私は初心者です。

4

1 に答える 1

0

1 つのオブジェクトが別のオブジェクトに影響を与えるようにする 2 つの一般的な方法は、設定可能なパブリック プロパティを提供するか、クラスにメソッド + パラメーターを提供することです。どちらの場合も、変更を加えたいオブジェクトは、2 番目のオブジェクトにアクセスする何らかの方法が必要です。これを行う一般的な方法は、UINavigation viewControllers 配列で検索するか、appDelegate を介して tabBarController を介して検索するか、または 2 番目のクラスがシングルトンであり、クラス オブジェクトに参照を要求することで検索できます。

これを整理すると、呼び出し元のクラスは、次の署名を持つメッセージを送信するようなことを行います。

- (BOOL)updateImage:(CGImageRef)theNewImage
于 2012-08-26T15:22:14.340 に答える