ios - 使 UIModalTransitionStyle 看起来像快速推送

标签 ios swift

我想知道是否有任何方法可以使 UIModalTransitionStyle 具有“推送”样式?

因为我有这样的东西:

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let secondViewController = storyBoard.instantiateViewControllerWithIdentifier("SecondViewController") as! SecondViewController
secondViewController.modalTransitionStyle = UIModalTransitionStyle.FlipHorizontal


self.presentViewController(secondViewController, animated:true, completion:nil)

但是当我移动到另一个 View Controller 时,我希望有简单的“推送”效果。

问候!

编辑(感谢 LoGoCSE)但仍未解决

现在我有

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let secondViewController = storyBoard.instantiateViewControllerWithIdentifier("SecondViewController") as! SecondViewController
secondViewController.modalTransitionStyle = UIModalTransitionStyle.FlipHorizontal

let transition: CATransition = CATransition()
transition.duration = 0.25
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)


transition.type = kCATransitionPush
transition.subtype = kCATransitionFromRight

self.view.layer.addAnimation(transition, forKey: kCATransition)

self.presentViewController(secondViewController, animated:false, completion:nil)

但是,要点是,添加 View ([self.view addSubview:destinationController.view];) 不起作用。 所以我尝试像往常一样呈现 ModalView(没有动画),但是转换是在同一个 View 上完成的,然后第二个 View 出现。

最佳答案

-Objective-C 中的这段代码有效。您只需将其转换为 Swift

UIViewController *sourceViewController = self ;
UIViewController *destinationController = objdestinationViewController;

CATransition* transition = [CATransition animation];
transition.duration = .25;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush; //kCATransitionMoveIn; //,kCATransitionPush, kCATransitionReveal, kCATransitionFade
transition.subtype = kCATransitionFromRight; //kCATransitionFromLeft,kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom

[self.view.layer addAnimation:transition forKey:kCATransition];

[self.view addSubview:destinationController.view];

希望它有用:)

关于ios - 使 UIModalTransitionStyle 看起来像快速推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31287059/

相关文章:

swift - Swift 中的自定义 TableView 发送参数

ios - 无法在 UIImageView 上设置边框

swift - 在字典扩展中引用自己

swift - Playground Book 内的 iOS 11 框架 (CoreML)

ios - 如何根据图像大小设置高度的单元格

ios - native 从 UIImage 扫描条形码(即不使用 ZBar)

ios - 自动布局 UIView Xcode 6 nib 文件

swift - 尝试在 Swift 5 中设置 UISearchController 的背景颜色

ios - 消失的 UITextField 文本

ios - Firebase pods 'InAppMessagingDisplay'