2016-01-09 3 views
0

Я пытался сделать мой UILabel мигания в Xcode , но проблема в том, что не мигаетCant сделать UILabel текст мигания в Xcode

Вот мой код:

self.labelCountdownTime.alpha = 0.0; 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationCurve:UIViewAnimationCurveLinear]; 
[UIView setAnimationDuration:1.0]; 
[UIView setAnimationRepeatCount:FLT_MAX]; 
self.labelCountdownTime.alpha = 1.0; 
[UIView commitAnimations]; 

Есть что-то я делаю неправильно.

Благодаря

+0

Это прекрасно работает для меня, проверьте, правильно ли подключили розетку. Но лучшим подходом будет использование анимационного блока 'UIView'. –

+0

его вызывающе связанный. Я новичок в этом, что вы подразумеваете, используя блок UIView? – Kyle

+0

см. Ответ khuong291, его третий код, на который я ссылаюсь. –

ответ

0

Вы можете использовать NSTimer мигать текст в UILabel так:

NSTimer *timer = [NSTimer 
         scheduledTimerWithTimeInterval:(NSTimeInterval)(1.0) 
          target:self 
          selector:@selector(blink) 
          userInfo:nil 
          repeats:YES]; 
BOOL blinkStatus = NO; 

И селектор будет вызывать эту функцию:

-(void)blink{ 
    if(blinkStatus == NO){ 
     yourLabel.alpha = 1.0; 
    blinkStatus = YES; 
    }else { 
     yourLabel.alpha = 0.0; 
     blinkStatus = NO; 
    } 
} 

Или вы можете использовать метод animationWithDuration от UIView примерно так:

self.yourLabel.alpha = 0; 
[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse animations:^{ 
     self.yourLabel.alpha = 1; 
} completion:nil]; 

Надеюсь, это поможет вам.

+0

Я просто попробовал оба ваших метода, первый появился с несколькими ошибками, а второй не мигает. Я внедряю код неправильно? – Kyle

+0

измените название своей метки там! – Khuong

+0

я сделал хотя :( – Kyle

0

Я думаю, что вы хотели, некоторые вещи больше похожи на следующее: Создать таймер в контроллере:

@property (strong, nonatomic) NSTimer *timer; 

затем запустить таймер, когда вам это нужно, чтобы начать, как, возможно, в viewDidLoad

self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(toggleLabelAlpha) userInfo:nil repeats:YES]; 

и вот селектор:

- (void)toggleLabelAlpha { 

[self.labelCountdownTime setHidden:(!self.labelCountdownTime.hidden)]; 
} 

Попробуйте?

+0

приложение просто падает, когда я использую это :( – Kyle

+0

Извините, что не смог помочь. Это работает для меня в старом проекте, который у меня был.Я сделал редактирование одновременно с комментарием, потому что у меня был self.label.hidden вместо self.labelCountdowntime.hidden, который, если вы скопировали напрямую без редактирования, вызвал бы некоторые проблемы – daredevil1234

+0

, спасибо за вашу помощь. – Kyle

Смежные вопросы