Один способ соответствовать требованиям завтрашнего дня файл состоял бы в том, чтобы предусмотреть блоки. Прямо после Ваших данных заголовка файла, можно начать первый блок. Блок мог иметь байт или шифр для типа блока, затем размер в байтах. Теперь можно произвольно добавить новые типы блока, и можно пропустить до конца блока.
Вам необходимо пройти цикл рисования, чтобы перерисовать вид перед выполнением анимации. Этот код является примером «нарисуйте это, и когда наступит следующий цикл событий, сделайте это другое». Это не редкость, чтобы сделать это в коде пользовательского интерфейса. Ваш первый обходной путь - это то же самое, но гораздо более сложным способом.
- (void)_runTheAnimation {
// Moved here from -runTheAnimation
[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];
}
- (void)runTheAnimation { //FLIP button calls this
[self displayWithImage1];
[self performSelector:@selector(_runTheAnimation) withObject:nil afterDelay:0.0];
}