UIPageViewController:子控制器在滚动期间忽略状态栏高度
Posted
技术标签:
【中文标题】UIPageViewController:子控制器在滚动期间忽略状态栏高度【英文标题】:UIPageViewController: Child Controller ignoring status bar height during scrolling 【发布时间】:2014-12-18 02:18:25 【问题描述】:我在使用 UIPageViewController
时遇到了一些问题。如果我滚动到新页面,新的视图控制器在状态栏的我正在滚动。滚动后,视图控制器将自身定位在状态栏下方。
我正在使用 Storyboard(通用)。 UIPageViewController
具有属性 Extend Edges: Under Top Bars
。我错过了什么?
automaticallyAdjustsScrollViewInsets
设置为 false 无效
edgesForExtendedLayout = UIRectEdge.None
的使用也不起作用
在这里找到了一些未解决的问题,但没有答案 (link)
更新
跳跃的另一个原因是“约束”中的“边距”(found here)。如果您使用约束,请确保取消选中边距(右侧对话框)。您可以稍后在实用程序(左侧对话框)中删除它们。检查两个连接的视图!
【问题讨论】:
刚刚偶然发现完全相同的问题,但仍然没有找到答案:(如果你能正常工作,请告诉我 无法重现,无论是否滚动,所有页面都在状态栏后面,如果我将pageViewController的frame的原始Y设置为20,则所有页面都不在它后面。一个示例项目会有所帮助。 【参考方案1】:我刚刚找到了一个可能的解决方案:
在我的例子中,UIPageViewController
容器对其父视图有一个Top Space of 0
约束。
superview 是包含状态栏的根容器。
我将Top Space
的值改为20,高于状态栏。现在它不会移动状态栏下方的视图,因为它们已经在移动了。
希望有帮助!
【讨论】:
以上是关于UIPageViewController:子控制器在滚动期间忽略状态栏高度的主要内容,如果未能解决你的问题,请参考以下文章
UIPageViewController 强制重新加载 ChildView 控制器
如何将数据从 UIPageViewController 传递到它的“子视图”之一?
滑动后调整超级视图大小时,UIPageViewController 视图会跳转