Я добавляю некоторую базовую анимацию к карточной игре, над которой я работаю. (Мое первое приложение для iPhone.)Изменение вида контейнера анимации iPhone перед запуском анимации
Я создаю пользовательский класс UIView «AnimationContainer», который переворачивается с изображения1 на изображение2, переходя от rect1 к rect2. Мое конечное намерение состоит в том, чтобы до четырех из этих контейнеров выполняли свои переходы одновременно.
Проблема, с которой я сталкиваюсь, заключается в том, что анимация не показывает изображение1 ... поэтому появляется только последняя половина перехода с переворотом.
Однако, если я сначала сбрасываю анимацию, касаясь Сброса, тогда все работает отлично. Другими словами, если я снова и снова нажимаю Flip, я получаю только половину перехода ... но если я сначала нажимаю Reset, тогда все работает отлично для одного флип.
Итак, как я могу заставить анимацию правильно сбросить настройки?
Ниже приведен код, скриншот, и вот ссылка на письмо: Project Zip File 700k.
alt text http://www.robsteward.com/cardflip.jpg
- (void)displayWithImage1 { //RESET button calls this
self.frame = rect1;
[image2 removeFromSuperview];
[self addSubview:image1];
[self setNeedsDisplay]; //no help: doesn't force an update before animation
}
- (void)runTheAnimation { //FLIP button calls this
[self displayWithImage1]; //<---this is what the reset button calls
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:transition forView:self cache:NO];
self.frame = rect2;
[image1 removeFromSuperview];
[self addSubview:image2];
[UIView commitAnimations];
}
Спасибо!
Я придумал полууглечный обходной путь. Я добавил «фиктивную» анимацию и сделал мой класс делегатом для своего setAnimationDidStopSelector. Манекен-анимация имеет продолжительность 0.0 и просто перемещает представление в rect1. Когда вызывается селектор остановки манекена, я делаю «настоящий» анимированный флип-код сверху. Полностью функциональный, и похоже, как минимум 4 может работать одновременно. Да, я. LOL – Rob
Оказывается, что обходной путь может вызвать до половины секунды задержки, поэтому я начинаю щедрость. Должен быть способ отправить представление контейнера двум изображениям и перевести его с одного на другое на один переход. – Rob