2012-06-30 122 views
1

我想用[self changeColor]調用下面的方法;並獲得無法調用方法

「爲@MyClassViewController無可見接口聲明的選擇 「changeColor」

我並聲明它就像兩個h和.M:

@interface changeColor 

- (UIImage *) changeColor:(UIImage *)image; 

@end 

我我做錯了嗎? 請幫忙

-------------代碼-------------

- (UIImage *) changeColor:(UIImage *)image 

{ 
    UIGraphicsBeginImageContext(image.size); 

    CGRect contextRect; 
    contextRect.origin.x = 0.0f; 
    contextRect.origin.y = 0.0f; 
    contextRect.size = [image size]; 
    // Retrieve source image and begin image context 
    CGSize itemImageSize = [image size]; 
    CGPoint itemImagePosition; 
    itemImagePosition.x = ceilf((contextRect.size.width - itemImageSize.width)/2); 
    itemImagePosition.y = ceilf((contextRect.size.height - itemImageSize.height)); 

    UIGraphicsBeginImageContext(contextRect.size); 

    CGContextRef c = UIGraphicsGetCurrentContext(); 
    // Setup shadow 
    // Setup transparency layer and clip to mask 
    CGContextBeginTransparencyLayer(c, NULL); 
    CGContextScaleCTM(c, 1.0, -1.0); 
    CGContextClipToMask(c, CGRectMake(itemImagePosition.x, -itemImagePosition.y, itemImageSize.width, -itemImageSize.height), [image CGImage]); 

    CGContextSetRGBFillColor(c, 0, 0, 1, 1); 

    NSLog(@"--------- METHOD DETECTED");//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TEST 
    /* 
    switch (row) 

    { 
     case 0: 
      CGContextSetRGBFillColor(c, 0, 0, 1, 1); 
      break; 

     default: 
      CGContextSetRGBFillColor(c, 1, 0, 0., 1); 
      break; 
    } 
    */ 

    contextRect.size.height = -contextRect.size.height; 
    contextRect.size.height -= 15; 
    // Fill and end the transparency layer 
    CGContextFillRect(c, contextRect); 
    CGContextEndTransparencyLayer(c); 

    UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return img; 
} 

回答

3

問題是[self changeColor];changeColorchangeColor:是兩個不同的東西。如果您將其定義爲採用一個參數,則必須以此方式調用它。