为啥我在 UIScrollView 中的 UIView 不滚动?

Posted

技术标签:

【中文标题】为啥我在 UIScrollView 中的 UIView 不滚动?【英文标题】:Why is my UIView within UIScrollView not scrolling?为什么我在 UIScrollView 中的 UIView 不滚动? 【发布时间】:2014-05-04 09:30:30 【问题描述】:

我正在尝试在 UIScrollView 中为 UIView 设置滚动。

我的视图层次结构是:

UIView (Controller) > UIScrollView > UIView(从现在开始我将调用这个 subView)

我已经使用 IB 来设置布局。我将 subView 的顶部设置为与 UIScrollView 框架的顶部内联。 subView 与 UIScrollView 框架一样宽,并超出 UIScrollView 框架的高度。

在子视图中,我有 UILabels(也使用 IB 设置)。为了测试滚动,我有一个标签,它只是在 UIScrollView 框架的底部边框上方偷看。当我运行应用程序时,这个标签理想地能够滚动到视图中,但是,没有滚动,标签只是在 UIScrollView 框架结束的地方被截断。

在 ViewController.m 我有以下内容:

- (void)viewDidLoad

self.scrollView.contentSize = self.scrollSubView.frame.size;

其中 scrollSubView 是 UIScrollView 中的 UIView。

我错过了什么(做错了)阻止滚动工作?

感谢您提供的任何帮助。

【问题讨论】:

记录self.scrollSubView.frame.size.height 值并检查它是否真的大于滚动视图的高度。内容较短时,UIScrollView 不会滚动。 【参考方案1】:

可能的问题

自动布局已打开,它不会让滚动视图按要求工作。

可能的解决方案

    检查情节提要的自动布局并取消勾选。

    如果不想关闭,可以关注这个短视频 使用自动布局处理滚动非常棒。 :)

UIScrollView with autolayout on

【讨论】:

视频似乎成功了。感谢您的帮助:)

以上是关于为啥我在 UIScrollView 中的 UIView 不滚动?的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView - 无法查看所有 UIView

为啥 UIScrollView contentSize 在 IB 中被忽略,但当我在 viewDidAppear 方法中设置它时有效?

为啥当我在 uiscrollview 顶部添加对象时,即使我将所有四个约束都设置为 0,对象也会下降一点?

为啥我的 UIScrollView 中的 WKWebview 没有显示?

为啥程序背景会减慢 UIScrollView?

为啥我不能在 iOS 7.0 中的 UIScrollView 中滚动?