कोर एनिमेशन अपने CALayer आधारित कक्षा में actionForKey विधि को लागू करने से कस्टम एनिमेशन के लिए अनुमति देता है:मैं कोर एनीमेशन में ऑनऑर्डरऑट के लिए कस्टम एनीमेशन का उपयोग कैसे कर सकता हूं?
- (id<CAAction>)actionForKey:(NSString *)key {
// Custom animations
return [super actionForKey:key];
}
मैं तो एक एनीमेशन बनाने और इसे onOrderIn
कार्रवाई के लिए लौट सकते हैं (यानी परत एक और परत में जोड़ा जाता है जब) । यह ठीक काम करता है। यदि मैं onOrderOut
(यानी परत को अपने सुपरलेयर से हटा दिया गया है) के लिए ऐसा ही करता है, तो लौटाए गए एनीमेशन को अनदेखा किया जाता है, और इसके बजाय डिफ़ॉल्ट एनीमेशन लागू होता है। ज़ूम आउट करने की नहीं है
- (id<CAAction>)actionForKey:(NSString *)key {
if ([key isEqualToString:@"onOrderIn"] || [key isEqualToString:@"onOrderOut"]) {
CABasicAnimation *a = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
a.duration = 0.25;
a.removedOnCompletion = NO;
a.fillMode = kCAFillModeBoth;
if ([key isEqualToString:@"onOrderIn"]) {
a.fromValue = [NSNumber numberWithFloat:0.0];
a.toValue = [NSNumber numberWithFloat:1.0];
} else {
a.fromValue = [NSNumber numberWithFloat:1.0];
a.toValue = [NSNumber numberWithFloat:0.0];
}
return a;
}
return [super actionForKey:key];
}
काम करता है ज़ूम इन,:
मेरा लक्ष्य में परत (onOrderIn
) और बाहर (onOrderOut
) ज़ूम करने के लिए है। इसके बजाय डिफ़ॉल्ट फीका आउट एनीमेशन का उपयोग किया जाता है।
कोड में कुछ टाइपो हो सकते हैं, क्योंकि मैं इसे किसी अन्य मशीन पर टाइप कर रहा हूं।
क्या कोई मदद कर सकता है?
आह, धन्यवाद।मैं इसका परीक्षण करूंगा, मुझे इसका फिर से आवश्यकता होनी चाहिए, जबकि हमने क्यूटी जंबी के साथ सॉफ्टवेयर का एक पूरी तरह से अलग संस्करण लिखा था। ;) – Lemming