为啥我在 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 contentSize 在 IB 中被忽略,但当我在 viewDidAppear 方法中设置它时有效?
为啥当我在 uiscrollview 顶部添加对象时,即使我将所有四个约束都设置为 0,对象也会下降一点?