子视图控制器中的topLayoutGuide

70

我有一个带有透明状态栏和导航栏的UIPageViewController。 它的topLayoutGuide为64像素,符合预期。

然而,UIPageViewController的子视图控制器报告topLayoutGuide为0像素,即使它们在状态栏和导航栏下方也是如此。

这是预期行为吗? 如果是,最佳方法是将子视图控制器的视图定位在真正的topLayoutGuide下方是什么?

(除了使用parentViewController.topLayoutGuide,我认为这是一种hack方法)


3
我想知道他们是否已经彻底实现了嵌套ViewController容器的topLayoutGuide。这引出了一个问题,如果要实现自定义容器,该如何处理它... - Mike Pollard
1
你确定你在 viewWillLayoutSubviews 或者 viewDidLayoutSubviews 方法中测试了 topLayoutGuide 属性吗?如果我记得正确的话,在 viewWillAppear / viewDidAppear 方法中 topLayoutGuide 属性不能保证返回正确的值。 - Carlos P
2
我正在viewWillLayoutSubviews中进行测试,是的。 - hpique
@smileyborg 这就是我正在做的事情,结果与长度返回的值一致。 - hpique
3
我认为肯定有一些奇怪的事情正在发生。我有一个包含UITabbarController的UINavigationController。初始选择的选项卡始终会获得正确的间距,以出现在导航栏下方。但是当切换到其他选项卡时,顶部单元格会出现在顶部栏下面。 - Stephen Darlington
显示剩余5条评论
11个回答

0

这是已知指南长度的方法。创建约束条件不是针对指南,而是针对视图顶部使用固定常量,假设指南距离为。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接