Intereting Posts
क्या मुझे चुप धक्का अधिसूचना प्राप्त होने पर आईओएस मेरे ऐप को जागृत कर देगी? (जब ऐप राज्य चलाने में नहीं है) आईओएस एआरसी द्वारा लीक के रूप में चिह्नित निम्न ग्राफिकल कोड एक्सकोड 7 आप प्रावधान प्रोफाइल को कैसे ताज़ा करते हैं? छिपाने के साथ नेविगेशन बार में वापस बटन छिपाएंबैकबटन में स्विफ्ट स्विफ्ट खोज परिणाम नियंत्रक में खोज परिणामों में एक और दृश्य नियंत्रक के लिए कैसे एक एमेज़ोन एसएनएस विषय से एक आईओएस डिवाइस सदस्यता समाप्त करने के लिए? AVAudioPlayer के साथ पृष्ठभूमि में ध्वनियों के क्रम को चला रहा है iOS4 के लिए Info.plist में UIBackgroundModes कुंजी बनाने के लिए कुछ स्क्रीनशॉट दें Plist में डेटा को अद्यतन और सहेजना UIActionSheet में UIPickerView को जोड़ना (नीचे स्थित बटन) वेबदृश्य लैंडस्केप Xcode 9 सर्वर: अपर्याप्त सिस्टम संसाधनों के कारण डिवाइस को बूट करने में असमर्थ UISearchController का उपयोग करके प्रोग्राम UISearchBar स्थिति सफारी में UIWebView लॉन्च अद्यतन नियंत्रक देखें connectionDidFinish लोडिंग के बाद कॉल किया जाता है

कस्टम सहजता वक्र के साथ UIView ब्लॉक आधारित एनीमेशन विधियों को पुनःपूर्ति करें

UIView के ब्लॉक आधारित एनीमेशन विधियों में कस्टम सहजता की कमी की कमी कोर एनीमेशन की ओर जाता है अगर अधिक उन्नत घटता की आवश्यकता होती है।

CAKeyframeAnimation पर एक श्रेणी के साथ ऐसा करने का एक तरीका कोर एनीमेशन के साथ कस्टम सहजता समारोह को कैसे बनाया गया है? ।

अपने कोड को साफ और रखरखाव रखने के लिए मैं एक कदम आगे बढ़ना और UIView के ब्लॉक आधारित तरीकों को पुनः कार्यान्वित करना और सहजता वक्र समारोह का वर्णन करने वाला एक ब्लॉक शामिल करना चाहता हूं। UIView पर परिणामी श्रेणी इस तरह कुछ दिखाई देगी:

 + (void)animateWithDuration:(NSTimeInterval)duration easingCurveFunction:(double(^)(double))function animations:(void (^)(void))animations; 

क्या किसी के पास यह विचार है कि सेब अपने ब्लॉक आधारित एनीमेशन तरीकों को कैसे लागू करता है?

Solutions Collecting From Web of "कस्टम सहजता वक्र के साथ UIView ब्लॉक आधारित एनीमेशन विधियों को पुनःपूर्ति करें"

मुझे ब्लॉक-आधारित पद्धति बनाने के बारे में निश्चित नहीं है, लेकिन मैंने पाया है कि कस्टम सहजता कार्य को कार्यान्वित करने का एक बहुत ही सरल तरीका है और फिर भी ब्लॉक-आधारित एनिमेशन का उपयोग परत के addAnimation:(CAAnimation *)anim forKey:(NSString *)key को ओवरराइड addAnimation:(CAAnimation *)anim forKey:(NSString *)key विधि और स्वैप को किसी भी दृश्य के लिए एक अलग सहजता समारोह में जो आप चेतन करना चाहते हैं

शुरू करने के लिए, CALayer subclass, और निम्नलिखित विधि जोड़ें …

 // CustomViewLayer.m #import "CustomViewLayer.h" @implementation CustomViewLayer - (void)addAnimation:(CAAnimation *)anim forKey:(NSString *)key { if ([anim isKindOfClass:[CABasicAnimation class]]) { // intercept the animation and insert your own easing function int x1 = 0.250; int y1 = 1.185; int x2 = 0.210; int y2 = 1.000; CAMediaTimingFunction *func = [CAMediaTimingFunction functionWithControlPoints:x1 :y1 :x2 :y2]; anim.timingFunction = func; } [super addAnimation:anim forKey:key]; } @end 

आपके दृश्य उप-कक्षा में, सुनिश्चित करें कि आप कस्टम परत वर्ग लौट रहे हैं …

 // CustomView.m #import "CustomView.h" #import "CustomViewLayer.h" @implementation CustomView + (Class)layerClass { return [CustomViewLayer class]; } @end 

उसके बाद, आप मानक ब्लॉक-आधारित एनीमेशन विधियों का उपयोग कर सकते हैं जैसे कि …

 [UIView animateWithDuration:0.3 animations:^{ [customView setFrame:newFrame]; }]; 

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

अंत में, आसानी से बनाने और आसानी से काम करने के लिए एक भयानक टूल यहां पाया जा सकता है: http://matthewlein.com/ceaser/

मैं नहीं जानता कि कैसे ऐप्पल उनके ब्लॉक आधारित विधियों को लागू करता है, लेकिन ब्लॉक्सकिट स्रोत कोड पढ़ रहा है, मुझे लगा कि आपके द्वारा उल्लिखित विधि को कार्यान्वित करने के लिए, आपको शायद इसकी आवश्यकता है:

  1. एक UIView श्रेणी की घोषणा करें जैसे कि UIView (ब्लॉक)
  2. श्रेणी में, एनस्टिमेर संपत्ति को समय के साथ टाइमर को आग / अमान्य करने के लिए जोड़ें
  3. श्रेणी में, सहजता रखने के लिए ब्लॉक संपत्ति जोड़ेंक्रिव फंक्शन ब्लॉक कोड
  4. श्रेणी में एनीमेशन ब्लॉक कोड को रखने के लिए एक अन्य ब्लॉक पट्टी जोड़ें
  5. अपने ब्लॉक-आधारित पद्धति में, टाइमर सेट करें, गुणों को ब्लॉक कोड सहेजें
  6. टाइमर की आग लगने पर, कॉरफ फंक्शन ब्लॉक और एनीमेशन ब्लॉकों को आसानी से चलाएं, जैसा कि आप उन्हें गुणों में रखते हैं

ऐप्पल की कक्षाओं में अपने ब्लॉक-आधारित विधियों को जोड़ते समय मैं वास्तव में इस अभ्यास का पालन करता था