在 iOS6、XCode 4.5 中,UIScrollView 不滚动,尽管设置了 contentSize

Posted

技术标签:

【中文标题】在 iOS6、XCode 4.5 中,UIScrollView 不滚动,尽管设置了 contentSize【英文标题】:In iOS6, XCode 4.5, UIScrollView is not Scrolling, despite contentSize being set 【发布时间】:2012-12-13 08:28:35 【问题描述】:

在过去的一个小时里,我一直在用头撞墙,试图让我的 scrollView 滚动,但无济于事。在viewDidLoad 我有

  NSURL *url = [FlickrFetcher urlForPhoto:self.photoData format:FlickrPhotoFormatLarge];
  NSData *imageRawData = [NSData dataWithContentsOfURL:url];
  UIImage *image = [UIImage imageWithData:imageRawData];

  self.scrollView.delegate = self;
  self.imageView.image = image;
  self.scrollView.contentSize = image.size;
  self.imageView.frame = CGRectMake(0, 0, image.size.width, image.size.height);

我将 imageView 视图模式设置为左上角。

我的 UIScrollView 是通过选择我的 imageView,然后选择 Editor -> Embed in -> ScrollView 创建的。

还有什么我可以检查/尝试的吗?

【问题讨论】:

把scroll view的frame size作为你的图片尺寸,让contentSize大一点。 【参考方案1】:

如果您通过 nib 创建了滚动视图,并且该 nib 具有自动布局功能,则它不会让您滚动。

So go utility window of nib.
Select First tab of utility window.
Remove autolayout and run the application

【讨论】:

我必须找出发生这种情况的原因 这听起来可能是它...我试图找到实用程序窗口,但没有运气。 FWIW,我正在使用最新版本的 xcode 并通过情节提要创建了我的滚动视图。 自动布局是问题所在。一开始没看懂他的描述。基本上,选择你的故事板,然后是文件检查器(第一个选项卡)并取消选中“使用自动布局” 有人知道为什么会这样吗?我在任何地方都找不到。【参考方案2】:

清单:

    图片真的下载了吗? (所以它实际上有大小?) scrollview outlet 设置了吗? imageView 是否添加为 scrollView 的子视图?

顺便说一句。不知道这只是示例代码还是真实的,但如果它是真实的,那么同步下载数据真的很糟糕,甚至更糟糕的想法是在 viewDidLoad 中进行。

【讨论】:

是的。图像将显示(只是不滚动)。 (并同意在 viewDidLoad 中下载。我只是在上斯坦福课。这在下一个作业中变成了多线程。)【参考方案3】:

我猜是因为你在滚动视图中嵌入了图像视图,所以它的框架正在变成 imageview 的框架。当帧大小和内容大小相等时,滚动视图不会滚动。尝试将滚动视图的框架务实地设置为某个固定的矩形。 ScrollView 的 contentSize 的高度和宽度应该大于 scrollview 的框架的高度和宽度。给它一些滚动空间:)在你的情况下,我猜它们都是相等的。

【讨论】:

啊,我想这可能是它。我尝试记录两者,看起来它们的大小不同: 2012-12-14 10:33:35.909 SimpleScrollView[3439:c07] scrollView contentSize: 3264.000000 x 2448.000000 2012-12-14 10:33:35.909 SimpleScrollView[3439:c07] scrollView 框架:320 x 460.000000

以上是关于在 iOS6、XCode 4.5 中,UIScrollView 不滚动,尽管设置了 contentSize的主要内容,如果未能解决你的问题,请参考以下文章

iOS6 和 XCode 4.5 - 无法将应用上传到应用商店

如何将文本字段添加到警报视图? Xcode 4.5 iOS6

IOS 6.0 xcode 4.5 编译错误#import 代码保存在类外的文件中

iOS 项目将 Xcode 4.2 更新到 Xcode 4.5

Xcode 4.5 与 iOs 6 在 iOs 4.3 中的问题

在最新的 Xcode (4.5) 中使用 iPad 1 进行开发和调试,如何?