Swift 将滚动视图添加到集合视图层次结构

Swift 将滚动视图添加到集合视图层次结构,swift,scrollview,Swift,Scrollview,我有一个视图控制器,它有许多子视图,所有连接等。我发现我现在需要一个滚动视图,以便在较小的屏幕上显示所有内容 我的问题是如何将滚动视图添加到视图层次结构的顶部,并允许滚动所有视图 提前感谢您需要首先创建包含所有子视图的UIScrollView。然后,您可以遍历所有顶级子视图,并将它们从superview移动到scroll视图中 假设在您的UIViewController中: // You will need to handle auto-resize, frame adjustment, and

我有一个视图控制器,它有许多子视图,所有连接等。我发现我现在需要一个滚动视图,以便在较小的屏幕上显示所有内容

我的问题是如何将滚动视图添加到视图层次结构的顶部,并允许滚动所有视图


提前感谢

您需要首先创建包含所有子视图的
UIScrollView
。然后,您可以遍历所有顶级子视图,并将它们从superview移动到scroll视图中

假设在您的
UIViewController
中:

// You will need to handle auto-resize, frame adjustment, and auto-layout stuff
let scrollView = UIScrollView(frame: self.view.frame)

for view in self.view.subviews
{
    // Move all subviews from the main view to the scroll view
    for subView in self.view.subviews as [UIView]
    {
        subView.removeFromSuperview()
        scrollView.addSubview(subView)
    }
}

// Insert the scroll view as the first subview
self.view.insertSubview(scrollView, atIndex: 0)

如前所述,您必须处理这些视图的布局(自动调整遮罩大小、约束等)。

我几天前回答了这个问题,谢谢,所以您必须重置相对于tej父scrollview的约束?设置scrollview大小如何?下面是一个很好的教程,可以让scrollview根据内容自动设置其contentSize属性。在本教程中,它在scrollView中使用了contentView,但您实际上并不需要它。谢谢因此,如果我不使用内容视图,只是将视图添加到滚动视图中,我是否仍然需要告诉滚动视图它的大小,或者它将根据添加到其中的视图进行计算?