【发布时间】:2015-05-19 14:07:46
【问题描述】:
我一直在寻找(工作)教程甚至是使用 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
}
目前我还没有尝试开始将我的对象添加到滚动视图中,(我不需要缩放,只需进行垂直滚动),但我没有设法让任何工作:(事实上,正在运行带有这些添加的应用程序只会导致 UIProblems,屏幕奇怪地向上移动,并且它不适合我的屏幕的整个宽度?我尝试修复使框架边界等于宽度,但仍然没有工作
我没有收到任何错误。
我希望看到一个可以垂直滚动的示例viewcontroller!或者任何帮助将不胜感激!
这是灾难的截图,试图让我的视图可滚动的原因。
(我将滚动视图背景设置为红色,以查看它是否正确显示。它似乎是。但我无法滚动任何地方
按照 cmets 中的建议,我尝试添加 scrollview 作为 self.view 的子视图,而不是 self.view = self.scrollview,但没有积极的结果。
添加
scrollView.contentSize = CGSize(width:2000, height: 5678)
到 viewDidLayoutSubviews,正如下面的 cmets 中所建议的那样,我的视图可滚动!
但是由于某种原因,我的布局仍然看起来一团糟(在我让它可滚动之前,它看起来应该是这样)。
这是我的 topBar(蓝色)的示例约束,它应该占据整个水平空间。
self.scrollView.addConstraints(
NSLayoutConstraint.constraintsWithVisualFormat(
"H:|[topBar]|", options: nil, metrics: nil, views: viewsDictionary))
任何想法为什么这不起作用?
【问题讨论】:
-
你有没有尝试过不替换当前视图,而是将scrollView添加为子视图?
-
我马上试试!
-
将其添加为子视图,并将我所有的“self.view.addsubview(..) 更改为 self.scrollView.addSubView(...),与我的约束相同。但它看起来仍然很糟糕. 让我更新一下我的帖子,用一张灾难的图片。
-
将
self.scrollView.contentSize = CGSize(width:2000, height: 5678)放入viewDidLayoutSubviews并让我知道会发生什么...& 也放入viewDidAppear... -
我认为问题出在
self.view = scollView应该是self.view.addSubview(scollView)不确定什么是快速语法但添加子视图...
标签: ios swift uiscrollview