2012-06-30 85 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:是两个不同的东西。如果您将其定义为采用一个参数,则必须以此方式调用它。