Я пытаюсь создать интро-анимацию для своего приложения iOS, и у меня возникают проблемы с синхронизацией. В частности, я хотел бы сменить экраны после того, как начнется анимация. В настоящее время я использую UIImageView, и, похоже, нет способа сделать это. Многие вопросы, связанные с stackoverflow, говорят, что используют NSTimer или performSelector: afterDelay, но это не точные таймеры, и в моем случае это совершенно неправильно. Вот что я делаю.UIImageView Intro Animation issue
- Набор UILaunchImageFile к LaunchImage.png
- AppDelegate ALLOCS IntroViewController
- IntroViewController.LoadView ALLOCS IntroView
- IntroView.initWithFrame выполняет следующую UIImageView * IV = iv.animationImages = iv.animationDuration = 2.0 iv.animationRepeatCount = 1 [iv startAnimating]
- Комплект NSTimer/performSelector: a fterDelay?
- Когда таймерные триггеры меняются с IntroViewController на что-то еще.
Если я выполняю шаги 5 или 6, это работает неправильно. Он правильно воспроизводит анимацию, и он правильно изменит контроллер view/view, но время ужасно ужасно. Когда вы вызываете startAnimating таким образом, он может не начать анимацию в течение полной секунды или двух. Я полагаю, потому что приложение по-прежнему загружается в ресурсы как-то. Однако на этот раз это не соответствует симулятору или всем устройствам. Infact несколько запусков на одном устройстве могут иметь разные результаты. Таким образом, я не могу скомпрометировать некоторую задержку.
Все, что я хочу сделать, это обнаружить, что анимация UIImageView сыграла последний кадр и что-то сделала. Вот и все. Лучшее решение, которое я нашел до сих пор, это установить таймер каким-то образом, а затем сделать что-то, но в моей ситуации таймер не является решением.
Любые идеи?
Если я играю в кино, правильным интерфейсом будет MPMoviePlayerController? – LordCecil
Да, это было бы правильно использовать. –
Отлично, я дам ему выстрел сегодня вечером. Благодаря! – LordCecil