2
我在嘗試瞭解如何在CALayer上使用過濾器數組屬性應用CIFilter。根據文檔,這應該可以從iOS5獲得。如何將CIFilter應用於CALayer
這是我的代碼到目前爲止。
- (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 backgroundColor設置爲綠色。
我知道我可以通過其他方式創建漸變,但是如果這樣工作,我將應用更多的濾鏡,因此這僅用於測試系統。
我發現所有的例子是應用在UIImage的過濾器和我不能讓那些爲我工作...
Mr.Johan,親切嘗試一下self.view.layer.filters = [NSArray arrayWithObject:gradientFilter]; – Bala
感謝您的評論Bala,但[NSArray arrayWithObject:gradientFilter]與@ [gradientFilter]相同。新的Objective-C語法 – Johan
對不起,我不知道! :)並感謝那個新的Objective-C語法。 – Bala