Прежде всего, значения animateWithDuration
и delay
являются float
значения, и должны быть 1.0
и 2.0
Мнение: если ваш код на ViewDidLoad
метод, попробуйте переместить его в обособленное функция
Во-вторых, если вы не можете сделать это в этом контексте, перейдите на другой или совершите прогулку, например, используя
performSelector:withObject:afterDelay
Другая прогулка, чтобы установить delay
0, и поместить последующие UIView
анимационные блоки в completion
блоке предыдущих animateWithDuration
заявлений
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut
animations:^(void) {
//Leave it empty
}
completion:^(BOOL finished){
// Your code goes here
[UIView animateWithDuration:1.0 delay:0.0 options:
UIViewAnimationOptionCurveEaseIn animations:^{
} completion:^ (BOOL completed) {}];
}];
PS: некоторые свойства не поддерживаются для анимированные, такие как установка текста внутри блока анимации, поэтому после того, как задержка закончилась, начинается анимация, которая сразу же изменяет текст, поскольку это изменение не является анимированным.
в анимации случае текста, чтобы сделать то, что вы хотите, изменить текст в блоке завершения следующим образом:
[UIView animateWithDuration:1.0
delay:2.0
options: UIViewAnimationOptionTransitionCrossDissolve
animations:nil
completion:^{
lbl.text = @"My text" ;
}];
Также backgroundColor
является НЕ анимировать UIView
. Вместо этого используйте свойство backgroundColor
функции представления layer
:
[[controller layer] setBackgroundColor:[[UIColor anyColor] CGColor]];
Не могли бы вы показать нам немного больше вашего кода в контексте? У фрагмента выше есть пустой блок анимации ... –