Я видел несколько вопросов, связанных с этим здесь SO, но ни один из них не кажется, вполне отвечает этого: delay
часть UIView
animateWithDuration:delay:options:animate:completion:
не задержит. Вот фактический код, который вызывает его:UIView animateWithDuration: Задержка: Варианты: одушевленное: завершение не задерживая
-(void) viewDidAppear:(BOOL)animated
{
NSLog(@"about to start animateWithDuration...");
[UIView animateWithDuration:3.0 delay:2.0 options:UIViewAnimationOptionTransitionNone
animations:^{NSLog(@"in the animations block..."); self.textView.hidden = YES;}
completion:^(BOOL finished){if (finished) {NSLog(@"In the completion block..."); self.textView.hidden = NO; [self.player play];}}];
}
А вот это NSLog
временные метки:
2013-06-18 15: 27: 16,607 AppTest1 [52083: c07] собирается начать animateWithDuration. ..
2013-06-18 15: 27: 16,608 AppTest1 [52083: c07] в анимации блокирующих ...
2013-06-18 15: 27: 16,609 AppTest1 [52083: c07] в блок завершения ...
Как видно, инструкции выполняются в миллисекундах, а не от 2 до 3 секунд. Кто-нибудь знает причину этого?
Спасибо за быстрый ответ! Я также выполнил эту работу, не используя animateWithDuration: вообще, используя [self performSelector: @selector (doneMethod) withObject: nil afterDelay: 0.5]; – user2491253