使用多种填充颜色以编程方式创建UIImage

时间:2014-05-30 06:05:34

标签: objective-c

我知道如何以编程方式创建UIImage,使用以下代码:

CGRect rect = CGRectMake(0.0f, 0.0f, 300.0f, 60.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

我想要做的是,用多种颜色填充它。如下

enter image description here

1 个答案:

答案 0 :(得分:9)

您知道如何绘制一个矩形,只需外推以绘制多个矩形,如下所示。使用你自己的颜色。我使用了内置颜色,如果需要任何自定义颜色,则使用RGB值设置颜色。

        CGRect rect = CGRectMake(0.0f, 0.0f, 300.0f, 60.0f);

        NSArray *colorArray = [NSArray arrayWithObjects:[UIColor redColor],[UIColor yellowColor],[UIColor greenColor],[UIColor brownColor],
                                [UIColor lightGrayColor],nil];
        UIGraphicsBeginImageContext(rect.size);
        CGContextRef context = UIGraphicsGetCurrentContext();
        for (int i = 0; i < colorArray.count; i++)
        {
            CGRect smallRect = CGRectMake((300.0f /colorArray.count) * i,0.0f,(300.0f /colorArray.count) ,60.0f);
            CGContextSetFillColorWithColor(context, [colorArray[i] CGColor]);
            CGContextFillRect(context, smallRect);
        }


        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();