2013-01-28 18 views
7

मेरे विचारों में से एक में मुझे UIImageView की फ्रेम प्रॉपर्टी को एनिमेट करने की आवश्यकता है और इसे करने के दौरान मैं नेविगेशन बार के शीर्षक दृश्य में एक प्रगति पट्टी (UIProgressView) दिखाना चाहता हूं। समस्या यह है कि समस्या अगर मैं निम्नलिखित एनीमेशन ब्लॉक को टिप्पणी करता हूं तो प्रगति पट्टी को सुचारू रूप से अपेक्षित के रूप में अपडेट किया जाता है। दूसरी तरफ निम्नलिखित एनीमेशन के कारण प्रगति पट्टी अलग-अलग स्थानों में बंद हो जाती है और फिर से बढ़ती जा रही है।एनिमेट विथ अवधि: दूषित चिकनी प्रगतिबार वृद्धि

//add message bubble 
[UIView animateWithDuration:0.3 
         delay:0 
        options:UIViewAnimationOptionAllowUserInteraction 
        animations:^ 
{ 
    animationBubbleImageView.alpha = 1; 
} 
       completion:^(BOOL finished) 
{ 
    [self removeAutoCorrectionAndHighlight]; 
    [UIView animateWithDuration:0.3 
          delay:0 
         options:UIViewAnimationOptionAllowUserInteraction 
         animations:^ 
     { 
      CGRect bubbleFrame = CGRectMake(animationBubbleImageView.frame.origin.x, 
              animationBubbleImageView.frame.origin.y, 
              bubbleSize.width, 
              bubbleSize.height); 

      [animationBubbleImageView setFrame:bubbleFrame]; 
      messageLabel.alpha = 1; 
     } 
         completion:^(BOOL finished) 
     { 
      [self sendSubviewToBack:textView]; 
      [self.delegate moveBubbleToTableCell]; 
     }]; 
}]; 

एनीमेशन ब्लॉक मुख्य धागे को अवरुद्ध नहीं करते हैं, लेकिन प्रगति दृश्य के अनमोल beahviout का कारण क्या है?

अद्यतन: क्या मैं हासिल करना चाहते हैं IOS.While में MessagesApp बुलबुला एनीमेशन द्वारा लिखा गया संदेश एक बुलबुला हो जाता है और उसके स्थान पर प्रगति बार धीरे-धीरे बढ़ा देते चाहिए के लिए उड़ान भरता है।

यदि मैं एनीमेशन प्रोग्रेसबार सामान्य के साथ एक ही चीज़ की कोशिश करता हूं।

+1

बस एक जंगली अनुमान है, कारण यह हो सकता है कि आप यूआई को मुख्य धागे से अपडेट नहीं कर रहे हैं। –

+0

एक और जंगली अनुमान है, लेकिन क्या आपने जांच की है कि इस कोड के अंदर से 3 विधियों में से कोई भी कोड आपके मुख्य थ्रेड को अवरुद्ध करता है? – jhilgert00

+0

और बस यहां सबकुछ पर शासन करने की कोशिश कर रहा है, लेकिन मैं आमतौर पर अपने एनीमेशन कोड में वास्तविक फ्लोट का उपयोग करता हूं, यानी 0.00 के विपरीत 0.0f। – jhilgert00

उत्तर

1

बुलबुला एनीमेशन के समान एनीमेशन में प्रगति पट्टी एनीमेशन डालने का प्रयास करें। या उन्हें सभी को एनीमेशन समूह में डाल दें।

+0

दरअसल यह इस मामले में संभव नहीं है क्योंकि एनीमेशन दो हिस्सों में विभाजित है। पहला भाग बुलबुला की पीढ़ी है और प्रगति पट्टी वहां बढ़ने लगनी चाहिए। जब ​​बुलबुला तैयार होता है तो यह प्रतिनिधि पर दूसरी एनीमेशन ट्रिगर करता है method.IF मेरे पास एक ही कक्षा में सभी कोड थे, जिस तरह से आप सलाह देते थे –

-1

क्या आपने यह देखने के लिए उपकरण की कोशिश की है कि क्या हो रहा है?

जंगली अनुमान: आप यह भी जांच सकते हैं कि दो विचार अनजाने में ओवरलैप हैं या नहीं।

यदि संभव हो तो आप "पिताजी" द्वारा सुझाए गए एनिमेशन को एक साथ समूहबद्ध करने का प्रयास भी कर सकते हैं।

बेस्ट, अकोस

संबंधित मुद्दे