可以通过 <UIViewControllerAnimatedTransitioning> 自定义页面转场达到该效果,具体可参考我之前写的一个小项目。 先设置 modalPresentationStyle 和 modalTransitionStyle // iOS8+ self.modalPresentationStyle = UIModalPresentationCustom; self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 然后定一个遵从 UIViewControllerAnimatedTransitioning 协议的动画代理对象,并在内部实现以下方法。 @implementation FEPopupMenuControllerAnimatedTransitioning - (NSTimeInterval)transitionDuration:(id <UIViewControllerContextTransitioning>)transitionContext{ return 0.25; } -(void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext{ } @end 最后在 VC中 实现 UIViewControllerAnimatedTransitioning 协议,返回钢材定义的转场动画代理对象 #pragma mark <UIViewControllerAnimatedTransitioning> - (id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source { FEPopupMenuControllerAnimatedTransitioning *transitioning = [FEPopupMenuControllerAnimatedTransitioning new]; return transitioning; } - (id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed { FEPopupMenuControllerAnimatedTransitioning * transitioning = [FEPopupMenuControllerAnimatedTransitioning new]; return transitioning; } 详情可参考:Feelinging/FEPopupMenuController
可以通过 <UIViewControllerAnimatedTransitioning> 自定义页面转场达到该效果,具体可参考我之前写的一个小项目。
先设置
modalPresentationStyle
和modalTransitionStyle
然后定一个遵从
UIViewControllerAnimatedTransitioning
协议的动画代理对象,并在内部实现以下方法。最后在 VC中 实现
UIViewControllerAnimatedTransitioning
协议,返回钢材定义的转场动画代理对象详情可参考:Feelinging/FEPopupMenuController