如何使用UIImage类别创建的图像

时间:2013-12-27 07:14:41

标签: ios iphone objective-c uiimage uibezierpath

我已经创建了一个创建圆的方法,当我在同一个类中使用此方法时,该方法正常工作但是当我将其中的某个类别显示为

#import "UIImage+circle.h"
@implementation UIImage (circle)    
- (UIImage * ) makeImageofColor:(UIColor *)color
 {
        UIBezierPath *circle = [UIBezierPath
                                bezierPathWithOvalInRect:CGRectMake(0, 0, 15, 15)];
        UIGraphicsBeginImageContext(CGSizeMake(15, 15));
        CGContextRef context = UIGraphicsGetCurrentContext();
        CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor);
        [circle fill];
        UIImage *bezierImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return bezierImage;
    }
   @end

并在ViewController.m中

- (void)viewDidLoad
 {
      [super viewDidLoad];
      UIImage *img;
      self.ImageView1.image=[img makeImageofColor:[UIColor greenColor]];
}

2 个答案:

答案 0 :(得分:2)

这是参考问题,只需替换实例方法声明

- (UIImage * ) makeImageofColor:(UIColor *)color 

使用类方法声明

+ (UIImage * ) makeImageofColor:(UIColor *)color

并致电

self.ImageView1.image=[UIImage makeImageofColor:[UIColor greenColor]];

答案 1 :(得分:0)

在“UIImage + circle.h”文件中声明您的类别方法

- (UIImage * ) makeImageofColor:(UIColor *)color;

并在“ ViewController.m ”中导入“ UIImage + circle.h

这将解决您的问题。