gpt4 book ai didi

iOS Dismiss 和 Present View Controller 自定义动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:12 24 4
gpt4 key购买 nike

我有一个 View Controller ,我用以下 Objective-C 代码呈现:

CATransition *animation=[CATransition animation];
animation.delegate=self;
animation.duration=0.3;
animation.type=kCATransitionMoveIn;
animation.subtype=kCATransitionFromRight;

[self presentViewController:reader animated:NO completion:nil];
[reader.view.layer addAnimation:animation forKey:@"animation"];

并在委托(delegate)方法中使用类似的代码解散

CATransition *animation=[CATransition animation];
animation.delegate=self;
animation.duration=0.3;
animation.type=kCATransitionMoveIn;
animation.subtype=kCATransitionFromLeft;

[self dismissViewControllerAnimated:NO completion:nil];
[self.view.layer addAnimation:animation forKey:@"animation"];

但是有一个问题:与使用导航 Controller 不同,您会看到一个 View 滑到另一个 View 上;这里旧 View 立即消失所以新 View 移动到空白 View 上。

如何解决这个问题?我需要此代码在 IOS 6,7 和 8 中工作,并希望它看起来像您在导航 Controller 内的 View 之间来回切换时看到的水平动画。

编辑:我接受的解决方案在 iOS 6 中存在错误,如果我能找到修复它的解决方案,我将编辑这篇文章。

编辑 2:找到了。看来,因为我要展示一个 zBar View Controller ,所以我需要使用这段代码

zbarController.wantsFullScreenLayout=NO;

在我设置 cameraOverlayView 之后。

最佳答案

使用自定义动画呈现 View Controller :

CATransition* transition = [CATransition animation];
transition.duration = 0.3;
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromRight;
[self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
[self.navigationController pushViewController:reader animated:NO];

使用自定义动画关闭 View Controller :

CATransition* transition = [CATransition animation];
transition.duration = 0.3;
transition.type = kCATransitionReveal;
transition.subtype = kCATransitionFromLeft;
[self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
[self.navigationController popViewControllerAnimated:NO];

关于iOS Dismiss 和 Present View Controller 自定义动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26858356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com