Ok, ich weis gerade echt nicht weiter. Ich möchte einen CIFilter auf einem Layer animieren - allerdings implizit. Laut Doku ist das möglich:
developer.apple.com/library/io…occ/instp/CALayer/filters
Die Modifikation des Layers ist nur erlaubt bei Layer-Hosted View, daher:
Alles anzeigen
Soweit so gut, allerdings wird weder die Animation durchgeführt noch der Parameter geändert:
Irgendwelche Ideen?
Die Stelle, an welcher mein Gehirn dann komplett das Verständnis einstellt kommt jetzt. Folgender Code führt die Animation aus:
Sollte es nicht möglich sein den bereits gesetzten Filter zu verwenden? Irgendwie ist das doch Murks...
developer.apple.com/library/io…occ/instp/CALayer/filters
Die Modifikation des Layers ist nur erlaubt bei Layer-Hosted View, daher:
Quellcode
- - (void)awakeFromNib {
- ...
- // logoImageView == NSImageView
- CALayer* hostedLayer = [CALayer layer];
- hostedLayer.contents = [NSImage imageNamed:@"myImage"];
- // Setup the filter
- CIFilter *filter = [CIFilter filterWithName:@"CITwirlDistortion"];
- [filter setDefaults];
- [filter setName:@"bobby"];
- hostedLayer.filters = @[filter];
- [self.logoImageView setLayer:hostedLayer];
- [self.logoImageView setWantsLayer:YES];
- }
Soweit so gut, allerdings wird weder die Animation durchgeführt noch der Parameter geändert:
Irgendwelche Ideen?
Die Stelle, an welcher mein Gehirn dann komplett das Verständnis einstellt kommt jetzt. Folgender Code führt die Animation aus:
Quellcode
- - (void)doAnimation {
- CIFilter *filter = [CIFilter filterWithName:@"CITwirlDistortion"];
- [filter setDefaults];
- [filter setValue:@(1) forKey:@"inputRadius"]; // <-- Dieser Wert wird für die Animation verwendet: 1
- [filter setName:@"bobby"];
- [self.logoImageView layer].filters = @[filter];
- [[self.logoImageView layer] setValue:@(55.0) forKey:@"filters.bobby.inputRadius"]; // <-- Dieser Wert wird NICHT verwendet: 55 - fehlt dieses Statement wird überhaupt keine Animation durchgeführt.
- }
Sollte es nicht möglich sein den bereits gesetzten Filter zu verwenden? Irgendwie ist das doch Murks...
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von paxos ()