首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何改变ViewController在PopViewController上的动画方向

如何改变ViewController在PopViewController上的动画方向
EN

Stack Overflow用户
提问于 2014-02-10 05:42:26
回答 6查看 5.1K关注 0票数 6

可以改变ViewContoller流行动画的方向吗?

现在,当我们推VC的时候,它会显示动画幻灯片,从左到右,从右到左。

但我想要在流行VC上从左到右的动画幻灯片。

我试过使用UIViewAnimationTransition

代码语言:javascript
复制
[UIView  beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
[UIView commitAnimations];

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelay:0.375];
[self.navigationController popViewControllerAnimated:NO];
[UIView commitAnimations];

但是它没有我需要的动画,那就是从左到右的幻灯片。这就是我得到的动画

代码语言:javascript
复制
typedef enum {
   UIViewAnimationTransitionNone,
   UIViewAnimationTransitionFlipFromLeft,
   UIViewAnimationTransitionFlipFromRight,
   UIViewAnimationTransitionCurlUp,
   UIViewAnimationTransitionCurlDown,
} UIViewAnimationTransition;
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-10-11 06:01:47

我使用了以下代码。

将此添加到didFinishLaunchingWithOptions

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    //This line of code needed so you will not see the back window when its pop, match it with your app design.
    self.window.backgroundColor = [UIColor whiteColor];
    return YES;
}

如果您的POP代码添加了这些代码,

代码语言:javascript
复制
CATransition* transition = [CATransition animation];
transition.duration = 0.4f;
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.navigationController.view.layer addAnimation:transition
                                            forKey:kCATransition];
[self.navigationController popViewControllerAnimated:NO];

检查这个GIF的结果,

http://www.giphy.com/gifs/l2YSeBELE1phMEd5S

票数 6
EN

Stack Overflow用户

发布于 2017-11-12 15:39:02

干杯,这里是迅捷的3.0 ~ 4.0版本。

代码语言:javascript
复制
let transition = CATransition()
transition.duration = 0.4
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromRight
self.navigationController?.view.layer.add(transition, forKey: kCATransition)
self.navigationController?.popViewController(animated: false)
票数 8
EN

Stack Overflow用户

发布于 2014-02-10 05:55:07

您可以在您的案例中使用[UIView beginAnimations:]。你需要的话可以用setTransitionStyle。查看苹果文档中的雪崩UIViewAnimationTransitionStyle,请参阅此class/uiview/uiview.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21669863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档