मैं CALayer
के लिए छाया पथ एनिमेट कर रहा हूं।एक कैलियर छायापाथ एनिमेटिंग
फ्रेम सही ढंग से आकार बदलता है, लेकिन छाया स्केल नहीं होती है।
इसके बजाय छाया अंतिम आकार CGSize(20,20)
पर शुरू होता है और एनीमेशन के दौरान आयोजित करता है, भले ही मैं shadowPath एक प्रारंभिक मूल्य
[CATransaction begin];
[CATransaction setAnimationDuration: 0];
[CATransaction setDisableActions: TRUE];
layer.frame = CGRectMake(0,0,10,10);
layer.shadowPath = [UIBezierPath bezierPathWithRect:layer.bounds].CGPath;
[CATransaction commit];
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:10] forKey:kCATransactionAnimationDuration];
layer.frame = CGRectMake(0,0,20,20);
layer.shadowPath = [UIBezierPath bezierPathWithRect:tile.bounds].CGPath;
[CATransaction commit];
प्रयास के लिए धन्यवाद। क्या आप मुझे बता सकते हैं कि मेरा समाधान क्यों काम नहीं करता है? आप फ्रेम को एनिमेट क्यों कर सकते हैं लेकिन छाया पथ नहीं? – prostock
छाया एनीमेशन का बिंदु 'एनीमेशन WithKeyPath' को' छाया "के रूप में सेट करना है। इसका मतलब है कि एनीमेशन का उद्देश्य 'छायापाथ' है। मुझे यह तंत्र भी नहीं पता था, लेकिन सेटिंग 'एनीमेशन विथकेपथ' एनीमेशन बनाने के लिए बहुत महत्वपूर्ण है। यह ठीक है ? – weed