2009-11-18 11 views
5

मैं आईफोन संगीत ऐप की कवरफ्लो स्क्रीन में देखे गए एनीमेशन को कैसे कार्यान्वित कर सकता हूं? जब आप एक छोटे से दृश्य पर क्लिक करते हैं, तो यह दूसरे दृश्य पर फ़्लिप और स्केल करता है? मैं यह कैसे कर सकता हूँ? मैं मूल एनीमेशन का उपयोग फ्लिप करने और स्केल करने के लिए कर सकता हूं, लेकिन मैं दूसरे दृश्य में संक्रमण कैसे कर सकता हूं? धन्यवादफ़्लिपिंग और स्केलिंग दोनों के साथ एक आईफोन व्यू संक्रमण एनीमेशन को कैसे कार्यान्वित करें?

+0

यह उत्तर देखें: http://stackoverflow.com/questions/5511514/custom-transition-between-two-uiviews/8931492#8931492 – aoakenfo

+0

मैंने यहां एक समान प्रश्न (कोड के साथ) का उत्तर दिया: http: // stackoverflow। कॉम/प्रश्न/1 9 171 9 18/कैसे-कर सकते हैं-i-flip-and-enlarge-a-uiview-it-at-the-time-like-ios-7-ipad-app-stor –

उत्तर

14

आप दो UIView रों के लिए कंटेनर के रूप में एक UIView (frontside/पीछे) और फिर जरूरत को हटाने/subviews के रूप में कंटेनर के लिए/से इन जोड़ने जबकि बीच में एनिमेशन कर:

UIView *flipContainer; 
UIView *frontSide; 
UIView *backSide; 
    //... 
-(void)turnUp 
{ 
    [backSide removeFromSuperview]; 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1.0]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:flipContainer cache:YES]; 
    [UIView setAnimationDuration:1.0]; 
    CGAffineTransform transform = CGAffineTransformMakeScale(1.2, 1.2); 
    flipContainer.transform = transform; 
    [UIView commitAnimations]; 
    [flipContainer addSubview:frontSide]; 
} 
-(void)turnDown 
{ 
    [frontSide removeFromSuperview]; 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1.0]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:flipContainer cache:YES]; 
    [UIView setAnimationDuration:1.0]; 
    CGAffineTransform transform = CGAffineTransformMakeScale(1, 1); 
    flipContainer.transform = transform; 
    [UIView commitAnimations]; 
    [flipContainer addSubview:backSide]; 
} 
+0

एक आकर्षण की तरह काम किया। धन्यवाद! –

+0

हा! आपने '+ [UIView सेटएनीमेशन अवधि:]' दो बार आह्वान किया! –

0

मैं मैं आपके द्वारा किए जा रहे सटीक कोड की कोशिश कर रहा हूं - मुझे ज़ूम प्रभाव मिलता है लेकिन कोई मोड़ नहीं आता है। केवल अंतर यह है कि टर्नअप कोड से ठीक पहले मैं फ्लिपकॉन्टेनर (बैक शोइंग के साथ) जोड़ता हूं, फिर इसे फ़्लिप किया जा सकता है।

// construct animation container 
self.flipContainer = [[FlipContainer alloc] init]; 
[self.flipContainer.view setFrame:CGRectMake(clickedSquareX, clickedSquareY, 200, 200)]; 
[self.flipContainer.view addSubview:self.backside.view]; 
// add animation container 
[self.myParentView.view addSubview:self.flipContainer.view]; 
// PROCEED to your turnUp code 

कारण मैं यह कर रहा हूँ मैं एक क्षैतिज UIScrollView में और इतने के लिए 'अनुकरण' एक 200x200 छवि को घुमाते समय और विस्तार को दिखाने के लिए मैं पीछे दिखा के साथ मेरी flipContainer जोड़ने जूमिंग छवियों का एक समूह है है दबाए गए चित्र के सटीक स्थान पर सटीक छवि। यह काम नहीं करना चाहिए? मेरे लिए भ्रामक थोड़ा अपने turnUp कोड की पहली पंक्ति है आप करते हैं:

[backSide removeFromSuperview]; 

..which दृश्य मैं सिर्फ जोड़ा हटा।

मुझे यकीन नहीं है कि यह सवाल रखने के लिए यह सही जगह है - क्षमा करें अगर यह नहीं है!