【问题标题】:How to create a view above navigation bar or other screen content?如何在导航栏或其他屏幕内容上方创建视图?
【发布时间】:2016-05-19 02:48:39
【问题描述】:

如果该屏幕上没有导航栏,我希望在导航栏上方或任何屏幕内容上方有一个视图,以便它从本质上降低其他所有内容的高度并且不覆盖任何内容。我也希望这个视图允许交互(即,如果它被点击,它会做一些事情)。

我试过了 UIApplication.sharedApplication().keyWindow?.addSubview(view) 但这只是覆盖了视图。

这是一个可视化:

【问题讨论】:

标签: ios swift uiview


【解决方案1】:

不要从上面的角度去想它,把它看成是旁边 - 一个兄弟视图。

因此,使用该视图和其下方的容器视图创建您自己的根视图控制器,然后将您的“普通”根导航控制器(或其他)作为子视图控制器添加到容器视图中。

【讨论】:

  • 我采用了这种方式,效果非常好。我最初遇到了容器视图中的导航控制器对状态栏没有反应的问题,但我只需要摆弄自动布局即可使其正常工作。现在,当我切换顶部的红色条时,导航栏会正确移动,但导航控制器的子视图不会一直向下推。我可能要问另一个问题,但在我问之前,有什么快速的想法为什么会这样?
  • 滚动视图中是否有您真正不想要的自动调整插图?
  • 是的,它是一个表格视图,似乎没有像上面的导航栏那样向下移动。
  • 你需要在视图控制器上关闭自动插入
  • 这是整个SO中最好的答案!!我一直在努力移动 ViewController 框架,同时向窗口添加子视图,但是一旦模式视图出现(选择器/SMS 作曲家/来电),它们就中断了。这个是最好的。这就是它的行为方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多