【问题标题】:Blur current VC with Previous View in navigation Stack使用导航堆栈中的上一个视图模糊当前 VC
【发布时间】:2015-11-09 11:36:09
【问题描述】:

我正在UIStorybord 中制作一个 tvOS 应用程序。我想根据导航堆栈中以前的UIViewController 模糊我当前的UIViewcontroller。我为此使用UIVisualEffectView 类。所以我有我的 firstViewController,我在上面添加了UIImageView。在下一个UIViewController(这个VC将被推到我的FirstViewController之上)我在故事板的self.view上添加了UIVisualEffectView,然后在UIVisualEffectView的视图属性中添加了一个UIButton,但我没有得到任何模糊效果。

我还没有为此编写任何代码。我必须为此编写代码吗?我想在故事板中做所有事情,因为在故事板中添加约束比在代码中更容易。

这是图片

任何帮助将不胜感激。谢谢

【问题讨论】:

  • 请重新阅读并编辑您的问题,这几乎无法理解。您想模糊一个视图,然后在顶部显示新的视图吗?您究竟想要模糊什么以及应该在顶部显示的位置和内容?如果您在其上显示一个新的 VC,那么模糊一个 VC 是没有意义的,除非它的内容不是全屏或透明的……您能发布一张您想要的结果的图片吗?
  • 实际上我想在当前视图控制器的导航堆栈中获得我以前的 UIViewController 的模糊背景。就像在 iPhone 主屏幕上向下滑动并获得聚光灯搜索一样。
  • 那么请澄清你的问题,我会添加一个答案

标签: ios uiviewcontroller uistoryboard tvos uivisualeffectview


【解决方案1】:

默认导航转换将前一个 viewController 向左移动,然后将其从视图堆栈中移除。

你需要你的 viewController 来实现UINavigationControllerDelegate 协议:

- (id<UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController animationControllerForOperation:(UINavigationControllerOperation)operation fromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC;

现在您需要实现您的自定义动画对象,该对象实现了UIViewControllerAnimatedTransitioning,并在上述UINavigationController 委托方法中返回该类的一个实例。

为了简化流程,您可以将UIVisualEffectView 添加到您的第二个viewController。您将视图内容放置在效果视图中。

在您的自定义动画器中,您只需为目标 viewController 设置动画并将源 viewController 保留在原处。

【讨论】:

    猜你喜欢
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 2013-07-02
    • 2011-10-23
    • 2020-12-07
    • 1970-01-01
    相关资源
    最近更新 更多