在 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 创建)作为同一视图的子视图
如何将 UIScrollView 添加到基于 xib 的视图中