दिलचस्प पोस्ट
"पकड़" या "आखिरकार" में दायरे में "कोशिश" में घोषित चर क्यों नहीं हैं? मैं जावा में एक 2d सरणी की एक गहरी कॉपी कैसे करूं? एक XSD फ़ाइल से एक WSDL उत्पन्न करना ASP.NET MVC कस्टम त्रुटि हैंडलिंग Application_Error Global.asax? क्या कभी "{{}} के समय की आवश्यकता है (जबकि") "लूप? क्या जावास्क्रिप्ट में "सीमा ()" जैसी एक विधि है जो आपूर्ति की सीमा के आधार पर एक सरणी उत्पन्न करती है? बैच के सभी आदेशों में क्या मतलब है और क्या करते हैं? एक अस्थायी वस्तु का पता लेते हुए विजेट से गतिविधि शुरू करना अधिकतम सरणी लंबाई कोटा स्थानीय JSON फ़ाइल लोड हो रही है जब jQuery के सत्यापन प्लगइन मान्य नहीं होंगे, तो क्लिक ईवेंट इवेंट हैंडलर में PHP में ब्राउज़र भाषा का पता लगाएं कैसे एक RecyclerView के नीचे स्क्रॉल करने के लिए? scrollToPosition काम नहीं करता है एसएफटीपी फ़ाइल लॉक तंत्र

कैसे एक 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) { }]; } }