दिलचस्प पोस्ट
@grant मान सेट होने पर `विंडो` (लक्ष्य पृष्ठ) ऑब्जेक्ट कैसे एक्सेस करें? कैच ब्लॉक में फेंक दिया अपवाद – फिर से पकड़ा जाएगा? एंड्रॉइड बारकोड स्कैनिंग ऐप बनाने के लिए ZXing का उपयोग करना क्यों शून्य = शून्य एसक्यूएल सर्वर में झूठ का मूल्यांकन करता है UISearchBar नमूना कोड INSTALL_PARSE_FAILED_NO_CERTIFICATES त्रुटि क्या है? jQuery टेम्पलेटिंग इंजन कुछ को 'कोशिश' करने के लिए बेहतर और अपवाद को पकड़ने के लिए या यदि संभव हो तो अपवाद से बचने के लिए सबसे पहले? शरीर को स्क्रॉल करने से रोकें, लेकिन ओवरले स्क्रॉलिंग को अनुमति दें Jquery Ajax छवि लोड हो रहा है जावा: कंसोल साफ़ करें क्या MSBuild स्क्रिप्ट पर एक अच्छा ट्यूटोरियल है? डेटाटेल में एक्सेल शीट को पढ़ने का सर्वोत्तम / सबसे तेज़ तरीका है? सूची में एक आइटम को कैसे हटाएं, यदि वह मौजूद है? एक ही यूआरएल पर एक नए के साथ छवि को ताज़ा करें

कैसे एक UIView बाउंस एनीमेशन बनाने के लिए?

मैं एक UIView के लिए निम्नलिखित CATransition है जिसे finalScoreView कहा जाता है, जो इसे ऊपर से स्क्रीन में दर्ज करता है:

 CATransition *animation = [CATransition animation]; animation.duration = 0.2; animation.type = kCATransitionPush; animation.subtype = kCATransitionFromBottom; animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]; [gameOver.layer addAnimation:animation forKey:@"changeTextTransition"]; [finalScoreView.layer addAnimation:animation forKey:@"changeTextTransition"]; 

मैं इसे कैसे बनाऊं, यह नीचे आने के बाद एक बार बाउंस करता है, फिर भी क्या रहता है? यह अभी भी ऊपर से स्क्रीन दर्ज करनी चाहिए, लेकिन जब नीचे आता है तो उछाल

किसी भी मदद की सराहना की जाएगी, धन्यवाद!

वेब के समाधान से एकत्रित समाधान "कैसे एक UIView बाउंस एनीमेशन बनाने के लिए?"

IOS7 और UIKit डायनेमिक्स के साथ, CAKeyframeAnimations या UIView एनिमेशन का उपयोग करने के लिए अब कोई आवश्यकता नहीं है!

ऐप्पल की यूआईकेट डायनेमिक्स कैटलॉग एप पर एक नज़र डालें वैकल्पिक रूप से, तेहहानलाक्स में गिथूब में पूर्ण परियोजना के साथ एक स्पष्ट, संक्षिप्त ट्यूटोरियल है । यदि आप गतिशीलता के इन- और बहिष्कारों के बारे में अधिक विस्तृत ट्यूटोरियल चाहते हैं, तो रे विंडरलिच ट्यूटोरियल महान है। हमेशा की तरह, एप्पल डॉक्स एक महान पहला स्टॉप है, इसलिए डॉक्स में यूआईडीएनिकएनिमेटर क्लास संदर्भ देखें ।

ये किशोर्हनालैक्स ट्यूटोरियल से थोड़ा सा कोड है:

 self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view]; UIGravityBehavior* gravityBehavior = [[UIGravityBehavior alloc] initWithItems:@[self.redSquare]]; [self.animator addBehavior:gravityBehavior]; UICollisionBehavior* collisionBehavior = [[UICollisionBehavior alloc] initWithItems:@[self.redSquare]]; collisionBehavior.translatesReferenceBoundsIntoBoundary = YES; [self.animator addBehavior:collisionBehavior]; UIDynamicItemBehavior *elasticityBehavior = [[UIDynamicItemBehavior alloc] initWithItems:@[self.redSquare]]; elasticityBehavior.elasticity = 0.7f; [self.animator addBehavior:elasticityBehavior]; 

और यहां परिणाम हैं

स्क्वायर बाउंस

UIKit डायनेमिक्स वास्तव में शक्तिशाली और IOS7 के लिए उपयोग में आसान है और आप इसे से कुछ बहुत अच्छी लग रही UI प्राप्त कर सकते हैं।

अन्य उदाहरण:

बटन उछालस्लाइड उछालवसंत संग्रहWWDC स्प्रिंट संग्रह

UIKit गतिशीलता को लागू करने के लिए चरण हमेशा समान होते हैं:

  1. एक UIDynamicAnimator बनाएँ और इसे एक मजबूत संपत्ति में संग्रहीत करें
  2. एक या अधिक UIDynamicBehaviors बनाएं प्रत्येक व्यवहार में एक या अधिक आइटम होना चाहिए, आम तौर पर चेतन करने के लिए एक दृश्य।
  3. सुनिश्चित करें कि UIDynamicBehaviors में प्रयुक्त आइटम की प्रारंभिक स्थिति UIDynamicAnimator सिमुलेशन के भीतर एक मान्य स्थिति है।

IOS 7 में UIDynamicAnimator लिए एक आसान विकल्प स्प्रिंग एनीमेशन (एक नया और शक्तिशाली यूआईवीइव ब्लॉक एनीमेशन) है, जो आपको भिगोना और वेग के साथ अच्छा शेख़ी प्रभाव दे सकता है: उद्देश्य सी

 [UIView animateWithDuration:duration delay:delay usingSpringWithDamping:damping initialSpringVelocity:velocity options:options animations:^{ //Animations } completion:^(BOOL finished) { //Completion Block }]; 

तीव्र

 UIView.animateWithDuration(duration, delay: delay, usingSpringWithDamping: damping, initialSpringVelocity: velocity, options: options, animations: { //Do all animations here }, completion: { //Code to run after animating (value: Bool) in }) 

usingSpringWithDamping 0.0 == बहुत उछालभरी का उपयोग करके 1.0 बिना ओवरहूटिंग के बिना आसानी से गति बढ़ाता है।

initialSpringVelocity मोटे तौर पर, "वांछित दूरी, वांछित सेकंड से विभाजित" है। 1.0 एक सेकंड में चलने वाली कुल एनीमेशन दूरी से मेल खाती है। उदाहरण, कुल एनीमेशन दूरी 200 अंक है और आप चाहते हैं कि एनीमेशन की शुरुआत 100 पीटी / एस के दृश्य वेग से हो, जो 0.5 के मान का उपयोग करें।

इस ट्यूटोरियल में अधिक विस्तृत ट्यूटोरियल और नमूना ऐप मिल सकते हैं। मुझे उम्मीद है कि यह किसी के लिए उपयोगी है

यहाँ एक डेमो प्रोजेक्ट है जो आपको एनीमेशन को सही तरीके से प्राप्त करने में मदद करने के लिए बनाया गया है। का आनंद लें!

SpringDampingDemo

यहां छवि विवरण दर्ज करें

 - (IBAction)searchViewAction:(UIButton*)sender { if(sender.tag == 0) { sender.tag = 1; CGRect optionsFrame2 = self.defaultTopView.frame; optionsFrame2.origin.x = -320; CGRect optionsFrame = self.searhTopView.frame; optionsFrame.origin.x = 320; self.searhTopView.frame = optionsFrame; [UIView animateWithDuration:1.0 delay:0.0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:0 animations:^{ CGRect optionsFrame = self.searhTopView.frame; optionsFrame.origin.x = 0; self.searhTopView.frame = optionsFrame; self.defaultTopView.frame = optionsFrame2; } completion:^(BOOL finished) { }]; } else { sender.tag = 0; CGRect optionsFrame2 = self.defaultTopView.frame; optionsFrame2.origin.x = 0; CGRect optionsFrame = self.searhTopView.frame; optionsFrame.origin.x = 320; [UIView animateWithDuration:1.0 delay:0.0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:0 animations:^{ CGRect optionsFrame = self.searhTopView.frame; optionsFrame.origin.x = 320; self.searhTopView.frame = optionsFrame; self.defaultTopView.frame = optionsFrame2; } completion:^(BOOL finished) { }]; } }