在ScrollView中嵌入PageViewController--Swmift 5程序化

问题描述 投票:4回答:1

我有一个PageViewController,水平显示4个4个视图控制器。

我可以把这些viewControllers都嵌入到一个UIScrollView中吗?这将更容易管理一些任务。

直到现在我还在尝试在PageViewController中这样做,将PageViewController符合UIScrollViewDelegate。

 for view in self.view.subviews {
            if let subView = view as? UIScrollView {
                subView.delegate = self
                subView.isScrollEnabled = true
                subView.bouncesZoom = false
        }
    }

但它实际上只识别了单个ViewController的滚动,而不是整个4个VC的堆栈。我想让ScrollView的contentSize等于所有ViewController的整个宽度。

swift uiscrollview scrollview uipageviewcontroller uiscrollviewdelegate
1个回答
1
投票

你不能 变化 a UIPageViewController 成滚动视图。它已经 的滚动视图,但有很多内置的功能,用于通过视图控制器进行内存管理的分页。

如果你的目标是将4个视图控制器放入一个滚动视图中。

  • 创建一个新的(普通) UIViewController
  • 添加 UIScrollView 四面楚歌
  • 添加 UIStackView (分布:均等填充)到滚动查看
  • 将堆栈视图的4个面都限制在滚动视图的内容布局指南上。
  • 将其高度限制在滚动视图的框架布局指南高度上。
  • 加4 UIContainerView的堆栈视图
  • 将4个 "页面 "视图控制器分别嵌入到4个容器中。
  • 将第一容器的宽度限制在滚动视图框架布局指南的宽度上

你现在有一个完整的视图 UIScrollView 你可以在4个 "页面 "视图控制器中来回滚动。

© www.soinside.com 2019 - 2024. All rights reserved.