如何让 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 滚动

如何让 UIScrollView 滚动到 UITextView 的光标位置?

IOS如何让iCarousel像UIScrollView页面一样滚动

如何让 UIScrollView 忽略单次触摸?

如何让 UIScrollView 适合其内容大小,直到在自动布局中滚动之前达到最大值