2011-11-05 9 views
6

मैं निम्नलिखित कोड का उपयोग कर iOS 5 में एक MapKit ओवरले दृश्य (विशेष रूप से एक MKCircleView) के अल्फा मूल्य चेतन करने के लिए कोशिश कर रहा हूँ हो रहा MapKit:ios MKOverlayView एनीमेशन तुरन्त

-(void) animateCircle:(MKCircle*)circle onMap:(MKMapView*) mapView 
{ 
    MKCircleView * circleView = (MKCircleView*) [mapView viewForOverlay:circle]; 
    UIViewAnimationOptions options = UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionTransitionNone; 
    [UIView animateWithDuration:5.0 
          delay:0.0 
         options:options 
        animations:^(void) { circleView.alpha = 0.9; } 
        completion:^(BOOL finished) {} 
    ];  
} 

ओवरले के अल्फा मूल्य बदल रहा है जैसा कि मैं चाहता हूं, लेकिन यह निर्दिष्ट अवधि को एनिमेट करने के बजाय तुरंत वहां कूद रहा है।

क्या कोई सुझाव दे सकता है कि क्या गलत हो सकता है? शायद ओवरले विचारों पर एनीमेशन ब्लॉक के साथ अधिक जटिल है जैसा मैंने सोचा था।

उत्तर

0

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

आपके मामले में, यह दृश्य किसी अन्य चीज़ द्वारा एनिमेटेड होने की संभावना है। अपने विकल्पों में UIViewAnimationOptionBeginFromCurrentState में अन्य एनीमेशन/या 'को ढूंढने और निकालने का प्रयास करें।