与 UIScrollView 和 setContentSize 混淆

Posted

技术标签:

【中文标题】与 UIScrollView 和 setContentSize 混淆【英文标题】:Confusion with UIScrollView and setContentSize 【发布时间】:2012-01-27 20:19:29 【问题描述】:

在 Xcode 3 中,我按照关于 UIScrollView 的教程进行操作,该教程告诉我将 View 的大小设置为 320x650,然后在该 View 上拖动一个 ScrollView。添加后:

[scrollView isScrollEnabled:YES];
[scrollView setContentSize:CGMakeSize(320, 650)];

在 viewDidLoad 中,正确连接所有插座后,一切正常,当我尝试上下移动屏幕时,我能够看到滚动条。

但是,当我在 Xcode 4.2 中尝试相同的教程时,它不起作用,即。我无法滚动视图。看来我需要将内容大小设置为大于 ScrollView 的大小。

这是在 XCode 4.2 中发生了变化,还是原来的教程有误?

scrollView 的大小是否应该始终为 320x480?我不再理解这一切现在意味着什么的语义,即。为什么我需要setContentSize的scrollView,还要在Interface Builder中设置scrollView的大小。当我最初将滚动视图拖到视图顶部时,它的大小与视图相同。这是错的吗?

【问题讨论】:

我是 ios 开发的半新手,我不得不在我的应用程序中广泛使用 UIScrollView。我发现 ScrollView 在实际需要开始在屏幕上滚动某些内容之前什么都不做。我的猜测是,当您编写教程时,视图仍会响应平移手势并移动屏幕并在用户的手指从屏幕上移开后快速返回。这种行为可能是在框架升级时移动的,因为它是不必要的。 【参考方案1】:

对于 UIScrollView,contentSize 通常会大于 UIScrollView 的帧大小。设置 contentSize 的重点是告诉 UIScrollView 它的可滚动区域有多大。当用户拖动内容时,UIScrollView 会知道它可以向左或向右或向上或向下拖动多远。

【讨论】:

感谢您的回复。所以假设我的观点是(320,700)。我拖到视图上的 ScrollView 也是(320,700)。为了让我的 ScrollView 滚动,我应该设置什么 ContentSize,应该是 (320,750)? 你应该把 UIView 拖到 UIScrollView 上。如果随后将 contentSize 设置为 320 x 750,则可以上下拖动视图。

以上是关于与 UIScrollView 和 setContentSize 混淆的主要内容,如果未能解决你的问题,请参考以下文章

更改 UIAlertView 的背景颜色,我收到警告:未找到 -setContents 方法

升级到 Jetpack Compose Alpha 12 会导致 setContent 出现错误

Ueditor百度编辑器中的 setContent()方法的使用

QT 使用QDomDocument::setContent()读XML文件总是返回false

Ueditor1.3.6 setContent的一个bug

如何使 UIButton 与 UIScrollView 一起移动