带有自定义过渡的 presentViewController
Posted
技术标签:
【中文标题】带有自定义过渡的 presentViewController【英文标题】:presentViewController with custom transition 【发布时间】:2013-01-30 10:55:38 【问题描述】:我想展示一个模态 UIViewController,它具有与工具包可用的不同的转换。确切地说,与从底部滑动(UIModalTransitionStyleCoverVertical)相比,我想要一个倒置动画,present = 从顶部滑入,dismiss = 从顶部滑出。
我不认为 UIModalTransitionStyleCoverVertical 有一个简单的倒置选项,所以我想我需要自己制作一个。
我也没有使用 segue/storyboard,不确定这是否会有所不同。
我找到了一些解决方案,它们建议简单地为新的 viewcontroller 视图设置动画并使用 presentViewController 并将动画选项设置为 NO。不幸的是,我遇到的问题是背景立即变黑,即使我定义了具有清晰背景且不透明的新视图控制器视图。
知道如何解决这个问题吗?非常感谢!
【问题讨论】:
您能展示一下您现在是如何尝试为您的控制器设置动画的吗?否则很难说为什么背景会变黑...... 你可以试试这样的自定义动画...CATransition *transition = [CATransition animation]; transition.duration = 0.5f; transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; transition.type = kCATransitionFade;
看起来解决方案是使用屏幕截图,我遇到的问题是它花费了 700ms 太长,正在查看它...
我实际上不希望使用屏幕截图解决方法。将尝试自定义动画。谢谢!
【参考方案1】:
我解决了背景不透明的问题,截屏并将其用作模态视图控制器的背景。
【讨论】:
哈哈,刚好在寻找同样问题的解决方案时发现了这个问题!【参考方案2】:使用 CATransition 应用您的自定义动画。
将呈现的视图控制器的 modalPresentationStyle
属性设置为 UIModalPresentationCustom(适用于 ios 7 或更高版本)。另请参阅 UIModalPresentationOverCurrentContext iOS8 或 UIModalPresentationCurrentContext。
对于我来说,我想要相同的动画风格,但我只需要使用 iOS 8 的 UIModalPresentationOverCurrentContext。
【讨论】:
以上是关于带有自定义过渡的 presentViewController的主要内容,如果未能解决你的问题,请参考以下文章
使用带有子类 UINavigationController 的自定义 iOS 7 过渡偶尔会导致黑屏