2014-09-30 1 views
0

Какой был бы лучший способ для принятия элемента UILabel или UIButton и с изменением текста на каком-то установленном временном интервале, скажем, 3 секунды с содержимым массив коллекции строк с анимацией затухания?Изменить текст UILabel/UIButton из массива строк со временем и анимацией

ответ

1

Используйте NSTimer, чтобы запланировать изменение текста. Например, если ваш метод был вызван changeText, вы можете запустить таймер с помощью [NSTimer scheduledTimerWithTimeInterval:3.0 target:self select:@selector(changeText) userInfo:nil repeats:YES];, где 3.0 - это интервал времени в секундах.

Что касается анимации, у вас есть два варианта. Вы можете заставить текст исчезать, а затем исчезать, или вы можете заставить текст исчезать из одной строки в другую. Для бывшего (проявка затем из), использовать что-то вроде этого:

[UIView animateWithDuration:0.5 animations:^{ 
    textLabel.alpha = 0.0f; 
} completion:^(BOOL finished) { 
    textLabel.text = newString; 
    [UIView animateWithDuration:0.5 animations:^{ 
     textLabel.alpha = 1.0f; 
    }]; 
}]; 

Это угасает текстовую метку в 0,5 секунды (путем установки альфа до 0), а затем устанавливает текст NewString и исчезает ярлык . назад в

в качестве альтернативы, чтобы текст увядает от одного значения к другому:

CATransition *animation = [CATransition animation]; 
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
animation.type = kCATransitionFade; 
animation.duration = 1.00; 
[textLabel.layer addAnimation:animation forKey:@"kCATransitionFade"]; 
textLabel.text = newString; 
+0

Спасибо за ответ. – Diamond

+0

@Diamond Код идет в функции, выполняемой таймером. В моем примере это будет называться 'changeText', поэтому вы бы объявили метод, подобный' - (void) changeText {...} ' – ttarik

+0

К сожалению, я имел в виду, что к методу' changeText' следует добавить только код анимации , Вы должны запустить таймер при загрузке вашего представления ('viewDidLoad'). Мой код также не включает в себя выбор текстовой строки из вашего массива, который также должен идти в 'changeText'. Тем не менее, я укажу, что StackOverflow не является местом, чтобы просить людей писать блоки кода для вас. Если вы не уверены в базовых принципах Objective-C и iOS SDK, возможно, изучите некоторые обучающие программы для начинающих. Существует много информации о таймерах, анимации/затухающем тексте и случайных строках - на SO и в других местах. – ttarik

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