मैं यूआईएलएबल पर पाठ को रंग से एनिमेट करने की कोशिश कर रहा हूं: [काला] से [सफेद] तक [काला] और दोहराना।एक स्पंदन UILabel एनिमेटिंग?
- (void)timerFlash:(NSTimer *)timer {
[[self navTitle] setTextColor:[[UIColor whiteColor] colorWithAlphaComponent:0.0]];
[UIView animateWithDuration:1
delay:0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{[[self navTitle] setTextColor:[[UIColor whiteColor] colorWithAlphaComponent:1.0]];}
completion:nil];
}
।
[self setFadeTimer:[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFlash:) userInfo:nil repeats:YES]];
सबसे पहले मैं अपने विधि के बारे में सुनिश्चित नहीं हूँ, मेरी योजना (आप ऊपर देख सकते हैं) एक एनीमेशन ब्लॉक की स्थापना की और एक दोहरा NSTimer का उपयोग कर इसे कहते हैं जब तक रद्द कर दिया गया था।
मेरी दूसरी समस्या (जैसा कि आप ऊपर देख सकते हैं) यह है कि मैं काला (अल्फा 0) से सफेद (अल्फा 1) से एनिमेट कर रहा हूं लेकिन मुझे नहीं पता कि काले रंग में फिर से एनिमेट कैसे करें ताकि एनीमेशन लापरवाही से
अनिवार्य रूप से जो मैं चाहता हूं वह यूआईएलएबल पर पल्स के लिए पाठ रंग है जब तक कि उपयोगकर्ता जारी रखने के लिए बटन दबाए।
EDIT_001:
मैं मुसीबत में हो रही थी क्योंकि आप चेतन नहीं कर सकते [UILabel setColor:] क्या आप फिर भी एनिमेटेड जा सकता है [UILabel setAlpha:] तो मुझे लगता है कि एक जाना देने जा रहा हूँ।
EDIT_002:
- (void)timerFlash:(NSTimer *)timer {
[[self navTitle] setAlpha:0.5];
[UIView animateWithDuration:2
delay:0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{[[self navTitle] setAlpha:0.9];}
completion:nil];
}
यह काम करता है: केवल एक चीज है कि इस midGray से करने के लिए एनिमेट है (BTW मैं इसे रोकने के लिए जो है क्यों मैं इसे एक NSTimer को झुका तो मुझे लगा कि रद्द कर सकते हैं करना चाहते हैं) के पास और फिर वापस पॉप। क्या किसी को पता है कि मैं कैसे नज़दीक से मिडग्रे से वापस एनिमेट करूँगा, इसलिए मुझे एक अच्छा चिकना चक्र मिलता है?
EDIT_003: (समाधान)
कोड डेव डीलॉन्ग (नीचे देखें) जब CALayer अस्पष्टता शैली विशेषता का उपयोग करने के लिए संशोधित वास्तव में काम करता है ने सुझाव दिया:
UILabel *navTitle;
@property(nonatomic, retain) UILabel *navTitle;
।
// ADD ANIMATION
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"opacity"];
[anim setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[anim setFromValue:[NSNumber numberWithFloat:0.5]];
[anim setToValue:[NSNumber numberWithFloat:1.0]];
[anim setAutoreverses:YES];
[anim setDuration:0.5];
[[[self navTitle] layer] addAnimation:anim forKey:@"flash"];
।
// REMOVE ANIMATION
[[[self navTitle] layer] removeAnimationForKey:@"flash"];
मैं कर रहा हूँ 100% आश्वस्त नहीं है कि animateWithDuration के रूप में मैं कर सकते हैं NSTimer साथ काम करता है किसी भी एनीमेशन के साथ एक रंग से दूसरे तक पॉप के अलावा कुछ भी करने के लिए यह नहीं मिलता है। – fuzzygoat