【问题标题】:presentViewController with custom transition带有自定义过渡的 presentViewController
【发布时间】: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 太长,正在查看它...
  • 我实际上不希望使用屏幕截图解决方法。将尝试自定义动画。谢谢!

标签: ios uiviewcontroller modal-dialog transitions


【解决方案1】:

我解决了背景不透明的问题,截屏并将其用作模态视图控制器的背景。

【讨论】:

  • 哈哈,刚好在寻找同样问题的解决方案时发现了这个问题!
【解决方案2】:
  1. 使用 CATransition 应用您的自定义动画。

  2. 将呈现的视图控制器的 modalPresentationStyle 属性设置为 UIModalPresentationCustom(适用于 iOS 7 或更高版本)。另请参阅 UIModalPresentationOverCurrentContext iOS8 或 UIModalPresentationCurrentContext。

对于我来说,我想要相同的动画风格,但我只需要使用 iOS 8 的 UIModalPresentationOverCurrentContext。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2023-03-07
    • 1970-01-01
    • 2021-12-16
    相关资源
    最近更新 更多