我正在绘制一个饼图,每个切片都有不同的颜色。我需要使切片具有质感的外观,而不仅仅是纯色。任何想法如何做到这一点?我不想使用图像作为所有可能颜色的纹理。所以我需要生成一个纹理或类似的东西。有任何想法吗。谢谢!
ps:这是一个iphone项目。 (我不能使用Core Image)

最佳答案

将colorWithPatternImage与UIColor一起使用。

编辑:对不起,应该已经正确阅读了问题。

您将需要使用UIGraphicsContext创建可以在colorWithPatternImage中使用的图像。我建议使用可以加载的灰度图像tint with a similar method to this,然后将其用作UIColor中的图案。

因此,您将有一种遵循以下方法的方法:

- (UIColor *)texturedPatternWithTint:(UIColor *)tint {
    UIImage *texture = [UIImage imageNamed:@"texture.png"];

    CGRect wholeImage = CGRectMake(0, 0, texture.size.width, texture.size.height);

    UIGraphicsBeginImageContextWithOptions(texture.size, NO, 0.0);

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextDrawImage(context, wholeImage, texture.CGImage);
    CGContextSetBlendMode(context, kCGBlendModeMultiply);
    CGContextSetFillColor(context, CGColorGetComponents(tint.CGColor));
    CGContextFillRect(context, self.bounds);

    UIImage *tintedTexture = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return [UIColor colorWithPatternImage:tintedTexture];
}


(未测试)

关于iphone - UIColor的纹理?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3778530/

10-12 04:11
查看更多