我试图了解如何使用过滤器数组属性在 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 上应用过滤器,但我无法让它们为我工作......