在 UIView (XIB) 和滚动视图之上的 UIScrollView 不会滚动

Posted

技术标签:

【中文标题】在 UIView (XIB) 和滚动视图之上的 UIScrollView 不会滚动【英文标题】:UIScrollView on top of UIView (XIB) and scrollview will not scroll 【发布时间】:2012-06-06 10:07:11 【问题描述】:

在我的 xib 中,我创建了一个 UIView。

我在 UIView 中添加了一个子元素,它是一个 UIScrollView。 scrollView 不会滚动。

但是 如果我将 UIScrollView 拖出 UIView 使它们处于同一级别,那么它将按预期滚动

那么,当 它在我的 XIB 上的 UIView 内时,为什么我的滚动视图会停止滚动。

这是一个错误还是我需要做更多的事情才能让滚动视图在 UIView 的孩子滚动时滚动。

非常感谢, -代码

【问题讨论】:

当您的内容大小将超过您的帧大小时。它将允许您滚动。 它确实滚动,但当我在 UIView 中移动它时不会滚动。抱歉,如果我的问题不清楚。 你尝试过分配 UIView 吗? 如果您在内存中分配 uiview 您的 REALLOCATING 视图并基本上重置在 xib 中完成的所有操作.... Xib 为您完成所有这些,设置框架、分配、启动等。 【参考方案1】:

根据 Apple 关于滚动视图的文档..

滚动视图必须知道内容视图的大小,以便知道何时停止滚动;默认情况下,当滚动超出内容范围时,它会“弹回”。

或许,你应该设置它的 contentSize:

 [scrollView setContentSize:CGSizeMake(320, 480)];

由于您的 scrollView 是您的视图的子视图,因此您必须将其内容大小设置为小于您的视图。

另外,不要忘记启用滚动视图。

 [scrollView setEnabled:YES];

【讨论】:

【参考方案2】:

为您的滚动设置内容大小...scroll.contentSize= CGSizeMake(320,2000)

【讨论】:

嗯我想我需要重写这个问题......因为它确实滚动。问题是当它在 UIView 内移动时不再滚动。【参考方案3】:

检查容器UIView是否有userInteractionEnabled属性为FALSE。 这是唯一的原因,它不允许您在将滚动视图添加到任何 UIView 时滚动。

【讨论】:

以上是关于在 UIView (XIB) 和滚动视图之上的 UIScrollView 不会滚动的主要内容,如果未能解决你的问题,请参考以下文章

分页滚动视图约束布局问题

多次使用 UIView(使用 xib 创建)作为同一视图的子视图

在 XIB 中视图的正确宽度?

如何将 UIScrollView 添加到基于 xib 的视图中

UIView(放置在滚动视图内)在以编程方式更改高度常量时不显示其子视图

使用 XIB 和自动布局操作视图层次结构