You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将UIPageViewController添加到UIScrollView内嵌UIStackView并解决空白问题

问题原因

UIPageViewController 初始化后未设置初始显示的控制器,虽然已经配置了数据源和高度约束,但没有指定默认加载的页面,所以对应位置只有空白占位。
另外你初始化 UIPageViewController 时没有显式指定转场样式和导航方向,也可能因为默认值异常导致显示问题。

修复方案

  1. 显式指定 UIPageViewController 的初始化参数
  2. 调用 setViewControllers 方法设置初始显示页

修改对应代码段即可:

// 把原来的 pageViewController = UIPageViewController() 替换成这行,指定滚动样式和水平方向
pageViewController = UIPageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal)
pageViewController.dataSource = self
pageViewController.view.translatesAutoresizingMaskIntoConstraints = false
pageViewController.view.heightAnchor.constraint(equalToConstant: 200).isActive = true

// 新增这行,设置初始显示第一个控制器
pageViewController.setViewControllers([controllers.first!], direction: .forward, animated: false, completion: nil)

addChild(pageViewController)
contentView.addArrangedSubview(pageViewController.view)
pageViewController.didMove(toParent: self)

修改完成后运行即可看到200高度区域正常显示黑色的第一个页面,左右滑动可切换其他控制器页面。


内容的提问来源于stack exchange,提问作者Ariel Malka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:36:05