当按下一个新的视图控制器时,它从右边进入屏幕,这样就可以正常工作或者我的两个VC之一.另一方面,我创建了a custom segue based on this example,这将使VC从左到右显示.
这可行,但动画本身并不是无缝的.看起来好像视图从左侧推到根VC上 – 看起来好像在视图出现之前有一个黑色背景可见.
我想知道是否有人会知道如何获得一个完全镜像版本的默认“推”(即从右到左)动画?
解决方法 Check out this article.除了过渡本身之外,它正是你想要的.简而言之:1)创建一个对象来执行动画
@interface Animator : NSObject <UIVIEwControllerAnimatedTransitioning>@end
2)成为导航控制器的委托,并在此导航控制器委托方法上回答该动画师的实例:
// in your vc.m@interface VIEwController () <UINavigationControllerDelegate> // add this// in vIEw dID loadself.navigationController.delegate = self;// implement this to pass your animator as the thing to be in charge of the Transition animation- (ID<UIVIEwControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationControlleranimationControllerForOperation:(UINavigationControllerOperation)operation fromVIEwController:(UIVIEwController*)fromVC toVIEwController:(UIVIEwController*)toVC { if (operation == UINavigationControllerOperationPush) { return [[Animator alloc] init]; } return nil;}
3)在你的动画师中,回答持续时间:
- (NSTimeInterval)TransitionDuration:(ID <UIVIEwControllerContextTransitioning>)TransitionContext{ return 0.25;}
4)所有这些都来自文章.剩下要做的唯一事情是实现从左到右的幻灯片. (我更改了文章的代码,从左到右滑动):
- (voID)animateTransition:(ID<UIVIEwControllerContextTransitioning>)TransitionContext{ UIVIEwController* toVIEwController = [TransitionContext vIEwControllerForKey:UITransitionContextToVIEwControllerKey]; UIVIEwController* fromVIEwController = [TransitionContext vIEwControllerForKey:UITransitionContextFromVIEwControllerKey]; CGRect fromVCFrame = fromVIEwController.vIEw.frame; CGfloat wIDth = toVIEwController.vIEw.frame.size.wIDth; [[TransitionContext containerVIEw] addSubvIEw:toVIEwController.vIEw]; toVIEwController.vIEw.frame = CGRectOffset(fromVCFrame,-wIDth,0); [UIVIEw animateWithDuration:[self TransitionDuration:TransitionContext] animations:^{ fromVIEwController.vIEw.frame = CGRectOffset(fromVCFrame,wIDth,0); toVIEwController.vIEw.frame = fromVCFrame; } completion:^(BOol finished) { fromVIEwController.vIEw.frame = fromVCFrame; [TransitionContext completeTransition:![TransitionContext TransitionWasCancelled]]; }];}
我在一个小项目中尝试了所有这些,它的工作非常顺利.
总结以上是内存溢出为你收集整理的ios – 推动视图控制器时“从左到右”的无缝动画?全部内容,希望文章能够帮你解决ios – 推动视图控制器时“从左到右”的无缝动画?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)