2009-12-11 10 views
6

क्या यह संभव है? मैं परत की अस्पष्टता और स्थिति (केंद्र) बदल सकता हूं लेकिन जब भी मैं आकार या मूल को बदलने की कोशिश करता हूं, यह काम नहीं करता है।कोर एनीमेशन (CAKeyFrameAnimation) के साथ UIView का आकार बदलें और स्थानांतरित करें

CAAnimationGroup* anigroup = [CAAnimationGroup new]; 

    CGMutablePathRef thePath = CGPathCreateMutable(); 
    CGPathAddRect(thePath, NULL, CGRectMake(0,0, 320, 480)); 
    CGPathAddRect(thePath, NULL, CGRectMake(location.x - 16,location.y-24, 32, 48)); 
    CGPathAddRect(thePath, NULL, CGRectMake(190, 20, 32, 48)); 


    CAKeyframeAnimation* AniLoc = [CAKeyframeAnimation animationWithKeyPath:@"frame"]; 
    AniLoc.path = thePath; 
    AniLoc.keyTimes= [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0f], 
              [NSNumber numberWithFloat:0.3f], 
              [NSNumber numberWithFloat:1.0f],nil]; 
    AniLoc.duration = 5; 

    CFRelease(thePath); 

    anigroup.animations = [NSArray arrayWithObjects:AniLoc,nil]; 
    anigroup.duration = 5; 

    [focusview.layer addAnimation:anigroup forKey:nil]; 

उत्तर

10

आप दोनों आकार और एक एनीमेशन में एक दृश्य या परत की स्थिति को बदल सकते हैं, लेकिन आप एक एनीमेशन समूह के रूप में ऐसा करने के लिए, नहीं आयतों की एक श्रृंखला से एक रास्ता बनाने के द्वारा चाहता हूँ।

मैं एक समूहीकृत एनीमेशन का एक उदाहरण प्रदान करता हूं जो इसे कम करने के दौरान पथ के साथ एक दृश्य को स्थानांतरित करता है और मेरे उत्तर here में इसकी अस्पष्टता को कम करता है। यह घुमावदार पथ के लिए एक CAKeyframe एनीमेशन का उपयोग करके काम करता है जो दृश्य निम्नानुसार है (केवल अपनी स्थिति को एनिमेट कर रहा है), और उसके बाद दृश्य की सीमाओं के आकार को समायोजित करने के लिए मूल एनीमेशन का उपयोग करना। आप वहां के प्रत्येक आकार कीफ्रेम के लिए कई CGSizes के साथ एक CAKeyframeAnimation का भी उपयोग कर सकते हैं, जिससे उन्हें NSFalue में कुंजीफ्रेम के एनएसएआरएआरई में रखने से पहले उन्हें लपेटना सुनिश्चित हो जाता है।

एक बार में दो गुणों को एनिमेट करने के लिए, मैं दो एनीमेशन को CAAnimationGroup में लपेटता हूं और इसे दृश्य की परत पर लागू करता हूं।

+0

बहुत बढ़िया, यह वही है जो मैं ढूंढ रहा था। धन्यवाद! – ACBurk