更新:当我发布这个答案时,我不知道还有更简单的方法
1)进入视图控制器,并点击其中的某个元素,按下Command + A
。这将选择视图中的所有元素。
2)转到 Editor -> Embed In -> Scroll View
。这将把所有标签、视图等嵌入到一个 scrollView 中。
3)选择刚刚嵌入的 scrollview
。按住Control
并将其拖到视图控制器的相应类文件中,并创建一个 outlet scrollView
。
4)将以下内容添加到您的 viewDidLoad()
中:
scrollView.contentSize = CGSizeMake(self.view.frame.width, self.view.frame.height+100)
确保contentSize的高度大于视图的大小。
手动添加SCROLLVIEW
1)从Object Library中拖放一个scrollview
到Storyboard中的viewcontroller
上,并将其作为“scrollView”创建一个代码连接。
2)单击viewcontroller
,进入尺寸检查器,记录宽度和高度。
3)单击scrollview
并将width
和height
设置为与viewcontroller
相同。并将X
和Y
值设置为0
4)点击scrollView
并将其稍微向一边拖动一下
5)按Command+A
选择所有元素,包括scrollView
。 按住Command
键并单击scrollView
以取消选择ScrollView
6)现在您将拥有除scrollView
之外的所有元素。 现在将它们点击并拖放到scrollView中。
7)现在单击scrollView
并从尺寸检查器中将X
和Y
值设置为0。
8)将此添加到viewDidLoad()
中
scrollView.contentSize = CGSizeMake(self.view.frame.width, self.view.frame.height+100)
确保contentSize的高度大于视图大小。
这将为您的视图创建一个scrollView。一些元素可能会处于略微不同的位置。您可以在storyBoard中移动它们来轻松解决问题。
self.view.frame.size.width
和 self.view.frame.size.height
属性。 - ArtStyleCGSizeMake(self.view.frame.width, self.view.frame.height+300)
更改为 CGSize(width: self.view.frame.width, height: self.view.frame.height+300)
。 - Chris如果你正在使用Snapkit或以编程方式创建。
class ScrollViewController: UIViewController {
lazy var contentViewSize = CGSize(width: self.view.frame.width, height: self.view.frame.height + 320) //Step One
lazy var scrollView : UIScrollView = {
let view = UIScrollView(frame : .zero)
view.frame = self.view.bounds
view.contentInsetAdjustmentBehavior = .never
view.contentSize = contentViewSize
view.backgroundColor = .white
return view
}()
lazy var containerView : UIView = {
let view = UIView()
view.frame.size = contentViewSize
view.backgroundColor = .white
return view
}()
override func viewDidLoad() {
self.view.addSubview(scrollView)
self.scrollView.addSubview(containerView)
//Now Set Add your Constraints in the container View.
}
}
我曾经也遇到了同样的问题。我需要在现有视图中添加滚动视图。但是我的主容器视图里面有很多子视图,它们之间都是相互连接的。所以我很担心。最终我还是做到了,下面是具体步骤:
复制你的视图(根视图)。首先选择根视图,然后按下 Command + D 复制。
现在删除根视图内所有子视图。
现在在根视图中添加滚动视图,并将其约束设置为 0,0,0,0。
现在将你复制的视图添加到滚动视图中,并将其约束设置为 0,0,0,0,同时设置你想要的高度。
通过与根视图等宽来设置复制视图的宽度。
现在选择 viewController,进入大小检查器,在自由形式大小中进行选择。然后设置与复制视图输入的高度相同的高度。
你已经完成了大部分工作。现在你需要将子视图与在 viewController 类中指定的 outlet 或 action 进行连接。
就这些了。