5

मैं एनीमेशन को लागू करने का प्रयास करता हूं: जब आप आईफोन गैलरी में प्रवेश करते हैं, तो छवि दबाएं, आपको पूर्ण-स्क्रीन छवि दिखाई देती है। नीचे आप कचरा बटन के साथ टूलबार देख सकते हैं। जब आप इस बटन को दबाते हैं, तो छवि एनीमेशन के साथ हटा दी जा रही है। मैं इसे लागू करने का प्रयास करता हूं, लेकिन मुझे नहीं पता कि छवि, सेब के उपयोग को कैसे कार्यान्वित किया जाए। यह सबसे अच्छा है, मैं कर सकता है:एनीमेशन, जैसे कि जब आप आईफोन फोटो गैलरी से हटाते हैं

[UIView transitionWithView:self.view duration:0.1 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{ 
     [self.view addSubview:scrollImageView]; 
    } completion:^(BOOL finished) { 
     [UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^{ 
      CGRect frame = scrollImageView.frame; 
      frame.size = CGSizeMake(frame.size.width * 0.75, frame.size.height * 0.75); 
      frame.origin = CGPointMake((size.width - frame.size.width)/2, (size.height - frame.size.height)/2); 
      scrollImageView.frame = frame; 
     } completion:^(BOOL finished) { 
      [UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^{ 
       CGRect frame = scrollImageView.frame; 
       frame.size = CGSizeMake(frame.size.width * 0.05, frame.size.height * 0.05); 
       frame.origin = CGPointMake(size.width, size.height); 
       scrollImageView.frame = frame; 
       CGAffineTransform transform = scrollImageView.transform; 
       CGAffineTransform rotatedTransform = CGAffineTransformRotate(transform, 45 * 3.14/180); 
       scrollImageView.transform = rotatedTransform; 
      } completion:^(BOOL finished) { 
       [scrollImageView removeFromSuperview]; 
      }]; 
     }]; 
    }]; 

अग्रिम धन्यवाद।

अद्यतन मैं समझता हूँ के रूप में, मैं कोर-एनीमेशन के साथ इस एनीमेशन ऐसा नहीं कर सकते, लेकिन किसी को मुझे एनीमेशन iPhone गैलरी एनीमेशन के लिए सबसे simular, लेकिन ओपन का उपयोग किए बिना सलाह कर सकते हैं कर सकते हैं?

उत्तर

3

इस बिंदु पर आप जिस सटीक एनीमेशन के बारे में बात कर रहे हैं वह कोर एनीमेशन या UIKit का उपयोग नहीं किया जा सकता है। आपको ओपनजीएल का उपयोग करने और छवि को बनावट के रूप में लागू करने और वहां अपनी एनीमेशन करने की आवश्यकता होगी।

+0

तुम मुझे एनीमेशन iPhone गैलरी एनीमेशन के लिए सबसे simular सलाह कर सकते हैं, लेकिन ओपन का उपयोग किए बिना? –

+0

मैंने पहले एक [ब्लॉग पोस्ट] किया था (http://ronnqvist.tumblr.com/post/23234805389/unobtrusive-hints-of-joy) सफारी से "पृष्ठभूमि में खोलें" एनीमेशन को दोहराने की कोशिश कर रहा है। यह काफी समान है लेकिन साथ ही बहुत अलग है। आप शायद इससे कुछ सीख सकते हैं और अपनी एनीमेशन के लिए आवश्यक भागों को अनुकूलित कर सकते हैं। –

6

आप इस एनीमेशन के लिए निम्न उदाहरण का उपयोग कर सकते हैं:

UIView *senderView = (UIView*)sender; 

CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform"]; 
      anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
      anim.duration = 0.125; 
      anim.repeatCount = 1; 
      anim.autoreverses = YES; 
      anim.removedOnCompletion = YES; 
      anim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.2, 1.2, 1.0)]; 
      //[senderView.layer addAnimation:anim forKey:nil]; 


UIBezierPath *movePath = [UIBezierPath bezierPath]; 
      [movePath moveToPoint:icon.center]; 
      [movePath addQuadCurveToPoint:senderView.center 
          controlPoint:CGPointMake(senderView.center.x, icon.center.y)]; 

      CAKeyframeAnimation *moveAnim = [CAKeyframeAnimation animationWithKeyPath:@"position"]; 
      moveAnim.path = movePath.CGPath; 
      moveAnim.removedOnCompletion = YES; 

      CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"]; 
      scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity]; 
      scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)]; 
      scaleAnim.removedOnCompletion = YES; 

      CABasicAnimation *opacityAnim = [CABasicAnimation animationWithKeyPath:@"alpha"]; 
      opacityAnim.fromValue = [NSNumber numberWithFloat:1.0]; 
      opacityAnim.toValue = [NSNumber numberWithFloat:0.1]; 
      opacityAnim.removedOnCompletion = YES; 

      CAAnimationGroup *animGroup = [CAAnimationGroup animation]; 
      animGroup.animations = [NSArray arrayWithObjects:moveAnim, scaleAnim, opacityAnim, nil]; 
      animGroup.duration = 0.5; 
      [icon.layer addAnimation:animGroup forKey:nil]; 

मैं को संशोधित किया है, आप इसे में परिवर्तन निम्नलिखित प्रदर्शन करने के लिए है self.view के रूप में इस दृश्य सेट, और के अंत बिंदु बदल एनीमेशन (जो वर्तमान में प्रेषक व्यू.सेंटर है) आपकी आवश्यकता के अनुसार

+0

कृपया, क्या आप मेरे scrollImageView और self.view का उपयोग करके अपना नमूना बदल सकते हैं। क्योंकि मैंने आइकन के बजाय scrollImageView का उपयोग करने का प्रयास किया है, और एनीमेशन भयानक है, मुझे लगता है कि मुझे कुछ समझ में नहीं आता है। –

+0

@ पॉल गैलाविक - इस तरह की एनीमेशन किया है? मुझे जानकर उत्सुकता है। मैं इसे भी कार्यान्वित करना चाहता हूं। – TheFlash

0

मुझे लगता है कि आप "चूसने" संक्रमण एनीमेशन के बारे में बात कर रहे हैं।

इसे ट्रिगर करना संभव है, लेकिन यह एक निजी संक्रमण है, और यदि आप इसका उपयोग करते हैं तो ऐप्पल आपके ऐप को अस्वीकार कर सकता है।

इस कोड को यह करना चाहिए, 103 के एक संक्रमण कोड का उपयोग:

[UIView beginAnimations: शून्य संदर्भ: शून्य]; [UIView सेटएनीमेशन अवधि: 1.0]; [UIView setAnimationTransition: transtionIndex forView: कंटेनर व्यू कैश: नहीं]; [कंटेनर व्यूव्यूव्यूव्यू: न्यू व्यू]; [oldView removeFromSuperview]; [UIView प्रतिबद्धएनीमेशन];

या मैं अपनी थोड़ी देर हो चुकी पता है "suckEffect"

4

नामक एक मुख्य छवि संक्रमण के लिए शुद्ध खोज करते हैं। लेकिन, आपको BCGenieEffect नामक सीचन के समाधान की जांच करनी चाहिए। here पाया जा सकता है। इसका शुद्ध कोर एनीमेशन और समझने में बहुत आसान है। मुझे लगता है कि आप यही चाहते हैं।

गुड लक