2011-02-27 14 views
5

की संपत्ति संपत्ति मैं आईफोन पर एक CATextLayer के पाठ (अग्रभूमि रंग) के रंग में परिवर्तन को एनिमेट करना चाहता हूं। प्रलेखन के अनुसार, संपत्ति की निहित एनीमेशन ओएसएक्स 10.6 पर उपलब्ध नहीं है, लेकिन आईओएस का कोई उल्लेख नहीं किया गया है। नतीजतन मैंने अभी माना है कि आईओएस पर काम करने के लिए एनीमेशन स्पष्ट होना चाहिए।अग्रभूमि एनिमेटिंग CATextLayer

मैंने +(class)layerClass का उपयोग कर बैकिंग लेयर क्लास बदल दी है, और UIView init विधि में संपत्ति के लिए प्रारंभिक मान सेट किया है। पाठ ठीक से दिखाता है, साथ ही मैंने जो गुणों को लागू किया है (छाया, फ़ॉन्ट इत्यादि), फिर भी एनीमेशन का कोई प्रभाव नहीं पड़ता है।

नीचे मेरी एनीमेशन विधि है, कि मैं एक केवीओ अवलोकन विधि से कॉल करता हूं ताकि दृश्य देखा गया हो जब दृश्य उपयोगकर्ता को अलर्ट करता है।

-(void) animateTextChange{ 
    animation = [CABasicAnimation animationWithKeyPath:@"foregroundColor"]; 

    [animation setFromValue:[[UIColor blackColor] CGColor]]; 

    [animation setToValue:[[UIColor whiteColor] CGColor]]; 

    [animation setDuration:2.0f]; 

    [[self layer] addAnimation:animation 
         forKey:@"foregroundColor" 
]; 
} 

हमेशा के रूप में धन्यवाद।

उत्तर

3

यही एक रास्ता है मैं ऐसा करने में सफल रहा है:

 [CATransaction begin]; 
     [CATransaction setAnimationDuration:.5]; 
     [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions]; 
     [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 
     yellowWord.foregroundColor =[UIColor redColor].CGColor; 
     [CATransaction commit]; 

आशा है कि यह किसी को मदद मिलेगी

+0

मैं तो यह काम करेगा उम्मीद कर रहा था, लेकिन यह iOS9 –

+0

यह मेरे लिए काम नहीं किया * मैंने * setValue: ... 'लाइन को स्विच करने के बाद * CATransaction.disableActions() ' –

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