アニメーション中に UIImage の彩度を変更しようとしています。しかし、このようにするには重すぎる/遅すぎるようです:
-(void) changeSaturation:(CGFloat)value{
CIContext * context = [CIContext contextWithOptions:nil];
CIFilter *colorControlsFilter = [CIFilter filterWithName:@"CIColorControls"];
CIImage *image = self.imageView.image.CIImage;
[colorControlsFilter setValue:image forKey:@"inputImage"];
[colorControlsFilter setValue:[NSNumber numberWithFloat:value] forKey:@"inputSaturation"];
CIImage *outputImage = [colorControlsFilter outputImage];
CGImageRef cgimg = [context createCGImage:outputImage
fromRect:[outputImage extent]];
UIImage *newImage = [UIImage imageWithCGImage:cgimg];
self.imageView.image = newImage;
CGImageRelease(cgimg);}
このメソッドは、ビューがユーザーによってドラッグされるたびに呼び出されます (距離が変化すると、彩度も変化します)。これは明らかに正しい方法ではありませんが、同様の動作が必要です。UIImageviewの上にあるレイヤーでこれを達成できるのだろうか。
誰かが私の目標を達成する方法についてアドバイスできますか?