2011-12-19 10 views
17

TwUI में, redraw पर TUIView पर एक विधि है। यह दृश्य को फिर से चलाने के लिए मजबूर करता है, लेकिन यह पुराने और नए राज्य के दृश्य के बीच एक मुक्त लुप्तप्राय एनीमेशन के साथ आता है।एक फीड एनीमेशन के साथ एक UIView को वापस लेना?

मुझे आश्चर्य है कि ऐसा कुछ सामान्य UIView में संभव है। असल में, मैं पुराने और नए राज्यों के बीच एक लुप्तप्राय एनीमेशन के साथ दृश्य (setNeedsDisplay) को फिर से कैसे हटा सकता हूं?

+0

यह सवाल समान है, लेकिन मैं के लिए काफी क्या देख रहा हूँ नहीं: http://stackoverflow.com/questions/4730110/i-want-to-animate-in-fact-fade-within-drawrect –

+0

आपको उस अन्य प्रश्न से अलग होने की क्या आवश्यकता है? –

+0

वह प्रश्न केवल एक दृश्य में लुप्त होने का जवाब देता है, एक फीका संक्रमण के साथ एक दृश्य अद्यतन नहीं। –

उत्तर

38

UIViewAnimationOptionTransitionCrossDissolve विकल्प के साथ उपयोग +[UIView transitionWithView:duration:options:animations:completion:], और एनीमेशन ब्लॉक के अंदर, तुरंत इसकी सामग्री पुनः बनाने का दृश्य की परत के लिए मजबूर।

[myView setNeedsDisplay]; 
[UIView transitionWithView:myView duration:1 
    options:UIViewAnimationOptionTransitionCrossDissolve 
    animations:^{ 
     [myView.layer displayIfNeeded]; 
    } completion:nil]; 
+1

आप आदमी हैं! पूरी तरह से काम किया। मुझे वास्तव में अपने कोर एनीमेशन पर ब्रश करना चाहिए, है ना? –

+0

हा हा, शायद। मैंने * [कोर एनीमेशन अनिवार्य] से एक * बहुत * सीखा (https://developer.apple.com/videos/wwdc/2011/#core-animation-essentials) * डब्ल्यूडब्ल्यूडीसी 2011 से वीडियो। लेकिन आपके प्रश्न के लिए मैं भी एक छोटे परीक्षण कार्यक्रम को लिखना पड़ा जिसने कोड-निर्मित कैलियर की सामग्री संपत्ति को बदल दिया और देखें कि यह किस एनीमेशन से जुड़ा हुआ है। –

+0

उस लिंक के लिए धन्यवाद, मैं इसे कभी-कभी देखूंगा। मैंने ज़रा और लांग द्वारा * कोर एनीमेशन * पुस्तक भी खरीदी, लेकिन मुझे यह कहने में शर्म आती है कि मैंने इसे अभी तक नहीं पढ़ा है। पढ़ने का ब्रेक लेने का समय! :) –

1

एक क्रॉस-विघटन UIView संक्रमण का उपयोग करने के बारे में कैसे?

[UIView transitionWithView:aView 
        duration:TIME_INTERVAL 
        options:UIViewAnimationOptionTransitionCrossDissolve 
       animations:^{ 
        // Change the view's state 
       } 
       completion:^(BOOL finished) { 
        // Completion block 
       }]; 
संबंधित मुद्दे