我需要在UIPageViewController上覆盖一个UIView,并希望它能让我关闭clipsToBounds,然后将交互边界区域的大小调整为较小的高度,并在非交互/非裁剪区域的顶部放置另一个视图。
不幸的是,UIPageViewController以某种方式调整了childViewController的大小,无论如何,它都会裁剪它。
我想要的是这样的:
我如何才能做到这一点?我找不到这样做的示例,我确实尝试使用UICollectionViewController进行分页,但它不像UIPageViewController那样具有平滑的页面间隙。
发布于 2018-06-05 04:13:18
以下是我在Swift中的工作:
pageViewController.clipsToBounds = false
pageViewController.view.clipsToBounds = false
for view in pageViewController.view.subviews {
view.clipsToBounds = false
}
类似于Vitaly的答案,但使用了一个循环来确保所有的子视图都得到了处理。
发布于 2016-02-08 18:11:04
UIPageViewController的视图在childViewController的实际视图之前的子视图层次结构中有另一个UIView (更准确地说是_UIQueuingScrollView)。因此,要禁用clipsToBounds,您应该这样做:
UIPageViewController *pageViewController = ...;
pageViewController.view.clipsToBounds = NO;
[[pageViewController.view subviews].firstObject setClipsToBounds:NO];
发布于 2020-06-28 00:53:53
好奇心...
如果页面视图控制器被设置为"curl“模式,实际上它无论如何都没有裁剪。谁知道呢?
解决方法..。
感谢Brian和Vitaly
class FixedPVC: UIPageViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
view.clipsToBounds = false
for v in view.subviews { v.clipsToBounds = false }
}
}
https://stackoverflow.com/questions/30222153
复制相似问题