如何让 UIScrollView 滚动
Posted
技术标签:
【中文标题】如何让 UIScrollView 滚动【英文标题】:How to get UIScrollView to scroll 【发布时间】:2014-07-03 00:16:26 【问题描述】:我一直试图让 UIScrollView 滚动,我使内容大小大于视图,但它不滚动。我可以启用bounceVertical,效果很好。
scrollView.frame = CGRect(x: 0,y: 0,width: 320,height: 420)
scrollView.contentSize = CGSize(width: 320,height: 568)
scrollView.scrollEnabled = true
scrollView.alwaysBounceVertical = true
为什么滚动视图不滚动?
编辑:
此代码运行良好,需要禁用自动布局才能更改滚动视图的内容大小。
【问题讨论】:
您在使用自动布局和情节提要吗? 使用故事板,而不是自动布局。滚动视图附加到情节提要中的滚动视图。定义为:@IBOutlet var scrollView : UIScrollView
您正在测试哪个 ios 版本? iOS 8 是吗?
是的,Xcode-6 Beta 1 上的 iOS 8
尝试升级到 Beta 2。该代码似乎可以正常工作。
【参考方案1】:
出现这种情况的原因通常是因为半透明的UINavigationBar's
。或者自动布局有时会根据您的视图和UIScrollView
的定位自动执行此操作。
解决方案:
最简单的做法是禁用自动布局(它会在任何一种情况下解决问题)或者如果你不这样做,你可以在 UINavigationBar
中关闭半透明不需要。
如果你需要这两个东西并且你不能牺牲任何一个,那么使用contentInsets
来“取消偏移”偏移量。 (这个解决方案被认为是非常老套和肮脏的)
【讨论】:
Google 是你的朋友,真的吗?【参考方案2】:如果你想保持 AutoLayout 开启,你应该在 viewDidLayoutSubviews()
中设置你的 ScrollView contentSize
。
【讨论】:
以上是关于如何让 UIScrollView 滚动的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ios 中为 UIScrollView 设置对齐方式
如何让 UIScrollView 滚动到 UITextView 的光标位置?