2014-12-07 2 views
0

Я только что создал пользовательский UITextView, в котором можно вставить заполнители. (Обращайтесь от Placeholder in UITextView)Мигающая анимация фона в пользовательском UITexitView

Однако, когда вы используете этот пользовательский UITextView, вы не можете сделать его мигающий фоновый эффект. * Проблесковые анимация коды ниже

- (void)startFlashAnimation: (UITextView *)textView 
{ 

[UIView animateWithDuration:3.0 
         delay:0.0f 
        options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse 
       animations:^{ 
        NSLog(@"Animation start"); 
        //NSLog(@"Color %@", [_flashColorsArr description]); 

        NSArray *arr = @[[UIColor orangeColor], [UIColor blueColor], [UIColor greenColor]]; 
        for (UIColor *color in arr) { 
         NSLog(@"color %@", color); 
         textView.backgroundColor = color; 

        } 

       } 
       completion:^(BOOL finished){ 
        NSLog(@"Finished the animation!"); 
       }]; 
} 

Это было бы очень признательны, если вы сделаете эффект флэш-анимации в этом пользовательском UITextView.

Cheers,

+1

Итак, вы живете на зеленом фоне? – Andy

+0

Что я хочу сделать, это сделать флэш-анимацию, которая меняет цвет между оранжевым, синим и зеленым цветом! Это имеет смысл? Извините за то, что мое объяснение было двусмысленным. – user1574429

ответ

1

Вы должны цепи анимации и запустить последовательность animateWithDuration: один за другим. Поскольку каждая анимация может интерполировать между двумя значениями одного и того же свойства, текущего или начального значения и конечного значения или нового.

Для использования стартера animateWithDuration блок завершения, чтобы запланировать следующую анимацию и изменить цвет фона на следующий цвет.

Другое важное состоит в том, что цвет фона текстового поля не может быть анимированным, что означает, что вы должны работать непосредственно с CALayer. Посмотрите на подобные вопросы на SO:

How to animate the background color of a UILabel?

FYI: CoreAnimation обеспечивает более продвинутые инструменты для анимации, такие как CAKeyframeAnimation, которая позволяет интерполировать значения между несколькими значениями в последовательности.

+0

Спасибо за ваши добрые советы, Энди! Я так ценю. > Для стартера используйте animateWithDuration блок завершения, чтобы запланировать следующую анимацию и изменить цвет фона на следующий цвет. Было бы здорово, если бы вы дали мне примерные коды для этого. Конечно, я буду исследовать ваши советы сам. Еще раз спасибо. – user1574429

+1

У вас уже есть код. Просто установите один цвет во времени и начните следующую анимацию внутри блока «завершения». – Andy

+0

Спасибо Энди, я попробую еще раз сослаться на ваши советы! – user1574429

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