У меня тоже были проблемы с этим.Я использовал код, написанный Floris, но, хотя он работал для первого «сальто», следующий сальто стало странным, когда кнопки и метки на внешнем интерфейсе просмотра потеряли свои позиции.
Я поместил приведенный ниже код на место, и он работает нормально.
Несколько замечаний:
- panelView - это элемент управления UIView на ViewController, который имеетдва других UIViews вложены в него (подпредставления).Первый называется frontView, второй - backView.(см. рисунок ниже)
У меня есть свойство bool, которое называется displayingFront для класса
(в моем .h)
@property BOOL displayingFront;
в моем .m
@synthesize displayingFront;
в моем методе viewDidLoad
self.displayingFront = YES;
Это код в .m, который я подключил к двум кнопкам, если передний и задний UIViews ...
- (IBAction)flip:(id)sender
{
[UIView transitionWithView:self.panelView
duration:1.0
options:(displayingFront ? UIViewAnimationOptionTransitionFlipFromRight :
UIViewAnimationOptionTransitionFlipFromLeft)
animations: ^{
if(displayingFront)
{
self.frontView.hidden = true;
self.backView.hidden = false;
}
else
{
self.frontView.hidden = false;
self.backView.hidden = true;
}
}
completion:^(BOOL finished) {
if (finished) {
displayingFront = !displayingFront;
}
}];
}