я должен был читать дальше, прежде чем задавать свой вопрос ...
[UIView setAnimationDuration] работает только при использовании Begin/Commit методы и должны вызываться между вызовами начинать и фиксировать анимацию и перед изменением любых анимационных свойств представления.
Для приложений iOS 4 или более поздних версий вы должны использовать блочные методы для анимации. Длительность устанавливается при вызове метода блока. См. Animations section of the View Programming Guide for iOS".
Если приложение будет запущено в iOS 3.2 и ранее, вы должны использовать методы Begin/Commit.
В моем случае я использовал Begin/Commit методы ...
[UIView beginAnimations:@"whatIfToolBar" context:whatIfToolBar];
[UIView setAnimationDuration:0.5];
whatIfToolBar.transform = CGAffineTransformTranslate(CGAffineTransformIdentity,0.0, - whatIfToolBar.frame.size.height);
[UIView commitAnimations];
Если бы я должен был использовать методы на основе блоков, это будет выглядеть, как это ...
[UIView animateWithDuration:0.5
animations:^{
whatIfToolBar.transform = CGAffineTransformTranslate(CGAffineTransformIdentity,0.0, -whatIfToolBar.frame.size.height);
}
];
Джон
Все еще актуально в 2017 году в iOS 10. (Методы Begin/Commit) –