Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Layer in Core Animation stellen Delegationsmethoden bereit, mit denen wir das Zeichnen und Animieren beeinflussen können, ohne eine Subklasse vom Layer bilden zu müssen. Mehr Informationen zu Layern und Core Animation im Allgemeinen erhalten Sie in Core Animation for Mac OS X and the iPhone [Dud08]. UIView nutzt die Delegation, da die View immer der Delegate ihres Layers ist. Damit können wir Layer-Delegate-Methoden zu unserer View hinzufügen und mehr Kontrolle über den Verlauf einer Animation erhalten. Lassen Sie uns dazu die Standardanimation durch eine eigene ersetzen, um zu sehen, wie das funktioniert. Dies ist der Code:
CoreAnimation/LayerDelegate/Classes/LayerDelegateView.m
-(id <CAAction>)actionForLayer:(CALayer *)layer forKey:(NSString *)key {
CAAnimation *animation = (CAAnimation *)[super actionForLayer:layer
forKey:key];
if([animation respondsToSelector:@selector(setDuration:)]) {
animation.duration = 2.0f;
}
return animation;
}