Swift - 屏幕外的容器视图

Posted

技术标签:

【中文标题】Swift - 屏幕外的容器视图【英文标题】:Swift - Container view outside of screen 【发布时间】:2017-07-01 19:34:23 【问题描述】:

我认为这是一个简单的问题,但我还没有找到解决方案,这让我发疯了!

我的视图容器中的一个容器视图不会遵循我提出的约束。由于某种原因,它在屏幕之外结束。主视图控制器包含在导航栏下方菜单的另一个视图(PageMenu)中,但我认为它不相关。我有另一个 PageMenu 视图,当我尝试将容器视图放在那里时,它已正确显示。

任何帮助将不胜感激!

运行时的样子

约束设置

提前致谢

【问题讨论】:

我们是在处理中间视图吗? 它是底部的一个,被选中的那个。中间的覆盖了整个屏幕,但显示在所选的下方一层。 上传带有顶视图和中间视图约束的截图..我想我们可以弄清楚一些事情! 【参考方案1】:

我发现了问题!我曾尝试禁用所有其他视图,以防它们的约束受到干扰,但它们与此无关。

显然视图在主视图之外 34.0 像素,这是我的 PageMenu 菜单的高度。因为懒,所以在viewDidLayoutSubviews()中修复了。

override func viewDidLayoutSubviews() 
    self.calendarViewContainer.frame = CGRect(...
                                              y: self.calendarViewContainer.frame.origin.y - 34.0,
                                              ...  
 

PageMenu pod 中可能包含更好的解决方案,但因为这是唯一受它影响的容器,所以我现在会坚持使用这个解决方案。

【讨论】:

以上是关于Swift - 屏幕外的容器视图的主要内容,如果未能解决你的问题,请参考以下文章

无论框架的 x 和 y 如何,UIView 始终位于屏幕底部 - Swift

屏幕外的Android动画视图不起作用

iCarousel 上的缩放变换显示屏幕外的区域

VoiceOver不能在横向滚动到屏幕外的元素?

带有 UIPageViewController 的 Swift 容器视图

如何在Swift中移动容器视图