我目前正在执行一个curl up动画,具体步骤如下:
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动画,同时避免重建视图或创建自定义子类的困难?