В настоящее время я выполняю анимацию скручивания, выполняя следующие действия:
CATransition *animation = [CATransition animation];
animation.type = @"pageCurl";
animation.subtype = kCATransitionFromTop;
animation.fillMode = kCAFillModeForwards;
animation.duration = 1;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
[[self.view.window layer] addAnimation:animation forKey:nil];
Эта анимация просто выполняет анимацию скручивания страницы, но в итоге вы остаетесь, глядя на тот же вид, который вы запустили.с.Никакого РЕАЛЬНОГО перехода не произошло.
Теперь, используя блоки анимации, я знаю, что вы можете сделать что-то с эффектом:
[UIView transitionFromView:self.view
toView:aNewView // a view to transition to
duration:1
options:UIViewAnimationTransitionCurlUp|UIViewAnimationOptionCurveEaseIn
completion:NULL];
Однако, используя блоки анимации, вы переходите в новый вид, aNewView
, который отличается от анимации CATransition выше, в которой повторно используется один и тот же вид (реального перехода не происходит).Проблема с блоком анимации заключается в том, что вам нужно создать новое представление, переход к которому является громоздким в моем случае, потому что представление довольно сложное, и я бы не хотел создавать подкласс UIView.
Есть лиспособ выполнить вышеупомянутую анимацию CATransition, используя блоки анимации, обойдя трудности, связанные с необходимостью перестроить представление или создать собственный подкласс?