2

我试图了解如何使用过滤器数组属性在 CALayer 上应用 CIFilter。根据文档,这应该可以从 iOS5 获得。

到目前为止,这是我的代码。

- (void)viewDidLoad
{
    [super viewDidLoad];
    CIFilter *gradientFilter = [CIFilter filterWithName:@"CILinearGradient"];
    [gradientFilter setValue:[CIColor colorWithRed:0 green:0 blue:0] forKey:@"inputColor0"];
    [gradientFilter setValue:[CIVector vectorWithX:0 Y:0] forKey:@"inputPoint0"];
    [gradientFilter setValue:[CIColor colorWithRed:1 green:1 blue:1] forKey:@"inputColor1"];
    [gradientFilter setValue:[CIVector vectorWithX:0 Y:200] forKey:@"inputPoint1"];

    self.view.layer.filters = @[gradientFilter];
    [self.view setNeedsDisplay];
}

self.view 只是一个空的 UIView,背景颜色设置为绿色。

我知道我可以通过其他方式创建渐变,但如果可行,我将应用更多过滤器,因此这仅用于测试系统。

我发现的所有示例都是在 UIImage 上应用过滤器,但我无法让它们为我工作......

4

1 回答 1

0

您需要将图层渲染为图像,然后将图像设置为过滤器,然后在图层中inputImage绘制。outputImage

于 2018-01-14T14:40:14.153 回答