Ios 如何将UIPageViewController设置为非clipToBounds

Ios 如何将UIPageViewController设置为非clipToBounds,ios,paging,uipageviewcontroller,Ios,Paging,Uipageviewcontroller,我需要在UIPageViewController上覆盖一个UIView,希望它能让我关闭clipsToBounds,然后将交互式边界区域调整为较小的高度,并将另一个视图放置在非交互式/非剪裁区域的顶部 不幸的是,UIPageViewController以某种方式调整了childViewController的大小,无论发生什么情况,它都会对其进行剪裁 我想要的是这样的东西: 我怎样才能做到这一点?我找不到这样做的示例,并尝试将UICollectionViewController与分页一起使用,但

我需要在UIPageViewController上覆盖一个UIView,希望它能让我关闭clipsToBounds,然后将交互式边界区域调整为较小的高度,并将另一个视图放置在非交互式/非剪裁区域的顶部

不幸的是,UIPageViewController以某种方式调整了childViewController的大小,无论发生什么情况,它都会对其进行剪裁

我想要的是这样的东西:


我怎样才能做到这一点?我找不到这样做的示例,并尝试将UICollectionViewController与分页一起使用,但它没有像UIPageViewController那样平滑的页面间距。

UIPageViewController的视图有另一个UIView(更准确地说是UIQueuingScrollView)在childViewController的实际视图之前的子视图层次结构中。因此,要禁用clipsToBounds,您应该执行以下操作:

UIPageViewController *pageViewController = ...;
pageViewController.view.clipsToBounds = NO;
[[pageViewController.view subviews].firstObject setClipsToBounds:NO];

以下是我在Swift中的工作:

pageViewController.clipsToBounds = false
pageViewController.view.clipsToBounds = false
for view in pageViewController.view.subviews {
    view.clipsToBounds = false
}
与Vitaly的答案类似,但使用循环来确保所有子视图都得到处理。

。。。 如果页面视图控制器设置为“curl”模式,实际上它没有剪辑。谁知道呢

修复。。。 多亏了布莱恩和维塔利

class FixedPVC: UIPageViewController {
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        
        view.clipsToBounds = false
        for v in view.subviews { v.clipsToBounds = false }
    }

}

将覆盖层作为子视图添加到UIPageViewController的superview中不起作用吗?这就是我最终让它“起作用”的方法,但clipsToBounds没有达到我对控制器的预期效果。我使用了一个父控制器来调整页面视图控制器的子控制器的内容大小,并使页面视图控制器处于全屏状态。第二个页面在我使用此选项滑动uipageviewcontroller tho之前不会显示solution@coolcool1994,只需使用下面我答案中的代码,干杯