【问题标题】:Can I place a UIView the current Navigation Controller?我可以在当前导航控制器中放置一个 UIView 吗?
【发布时间】:2015-04-10 22:14:04
【问题描述】:

如何将 UIView 置于导航控制器之上?如果不使用 UIViews 制作我自己的自定义导航栏和自定义标签栏控制器,这可能吗?

假设我有一个 UITabBarController,我想在整个事物之上呈现一个模糊视图。对于模糊视图,我使用的是 UIVisualEffectView。但我希望模糊视图占据整个屏幕,包括顶部导航栏和底部标签栏。如果我推动一个新的视图控制器,它将占据整个屏幕,但是我无法通过它看到下面的内容(标签栏控制器的内容)。

当我在模糊视图中制作动画时,我可以简单地隐藏导航栏和标签栏,但这看起来很尴尬,因为你看到 collectionview 中的内容会因为导航栏被隐藏而发生变化......我宁愿不看到当模糊视图出现时,内容会发生变化。

这是一个包含东西的 UITabBarController。

我想要一个模糊视图来覆盖所有内容,并能够看到整个 UITabBarController 和下面的东西。

【问题讨论】:

    标签: ios uinavigationcontroller xamarin uinavigationbar uivisualeffectview


    【解决方案1】:

    一种方法是将 UIView 添加为关键窗口的子视图。获取密钥窗口的方法见this post。但是,通常最好保留您自己的视图层次结构,所以...

    另一种方法可能是将新的视图控制器呈现为全屏模式,并将模糊/透明度应用于该模式视图。

    【讨论】:

    • 但是你不能通过那个新的视图控制器看到它下面的那个。您可以在动画时看到它,但是一旦动画完成,它就会变得不透明。我可能会避免向窗口添加视图。有趣的想法,但这是不好的做法吗?
    最近更新 更多