我已经寻找了好几天一个(可行的)UIScrollView垂直滚动的教程或者例子应用程序,特别是通过编程实现。有大量关于使用故事板的教程,这让我感到困惑。
我查看了苹果的文档,他们的“指南”仍然没有给出一个具体的例子或提示从哪里开始。到目前为止,我尝试了以下一些方法。
在类中直接将我的视图设置为UIScrollView
let scrollView = UIScrollView(frame: UIScreen.mainScreen().bounds)
然后在我的viewDidLoad函数中将其分配给视图
self.view = scollView
试图更改内容大小。
self.scrollView.contentSize = CGSize(width:2000, height: 5678)
尝试启用滚动
scrollView.scrollEnabled = true
我能找到的最后一个关于如何以程序化方式完成这个的建议
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
scrollView.frame = view.bounds
}
目前我还没有尝试将我的对象添加到滚动视图中(我不需要缩放,只需垂直滚动),但是我无论如何都没能使任何东西运作起来 :( 实际上,使用这些添加项运行应用程序只会导致界面问题,屏幕会奇怪地向上移动,而且它不能适合整个屏幕宽度?我尝试通过使框架边界等于宽度来修复它,但仍然没有效果
我没有收到任何错误信息。
我想看到一个可以垂直滚动的viewcontroller
示例!或者任何帮助都将被非常赞赏!
这里是一张灾难性的截图,试图使我的视图可滚动。
(我让滚动视图的背景变成了红色,以查看它是否正确显示。虽然它似乎是正确的,但我无法在任何地方滚动
如评论所建议的,我试着将self.view = self.scrollview改为将scrollview添加为self.view的子视图,但并没有任何积极的结果。
添加:
scrollView.contentSize = CGSize(width:2000, height: 5678)
按照下面的评论建议,查看了viewDidLayoutSubviews后,我的视图变得可以滚动了!
但出于某些原因,我的布局仍然看起来很混乱(在我将其设置为可滚动之前,它看起来像应该的样子)。
这是我的topBar(蓝色部分)的一个示例约束条件,它应该占据整个水平空间。
self.scrollView.addConstraints(
NSLayoutConstraint.constraintsWithVisualFormat(
"H:|[topBar]|", options: nil, metrics: nil, views: viewsDictionary))
有什么想法为什么这不起作用?
self.scrollView.contentSize = CGSize(width:2000, height: 5678)
放在viewDidLayoutSubviews
中,然后告诉我会发生什么......还有在viewDidAppear
中也要这样做... - Fahim Parkarself.view = scollView
应该是self.view.addSubview(scollView)
,不确定 Swift 的语法是什么,但是添加子视图的方法应该是这样的... - Fahim Parkar