Objective c 在iOS6的XCode 4.5中,尽管设置了contentSize,但UIScrollView没有滚动

Objective c 在iOS6的XCode 4.5中,尽管设置了contentSize,但UIScrollView没有滚动,objective-c,uiscrollview,ios6,Objective C,Uiscrollview,Ios6,在过去的一个小时里,我一直把头撞在墙上,试图让我的scrollView滚动,但没有成功。在viewDidLoad中,我有 NSURL *url = [FlickrFetcher urlForPhoto:self.photoData format:FlickrPhotoFormatLarge]; NSData *imageRawData = [NSData dataWithContentsOfURL:url]; UIImage *image = [UIImage imageWithDa

在过去的一个小时里,我一直把头撞在墙上,试图让我的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,然后选择编辑器->嵌入->滚动视图创建的

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

检查清单:

  • 图像真的下载了吗?(所以它确实有尺寸?)
  • 是否设置了scrollview插座
  • 是否将imageView添加为scrollView的子视图

  • 顺便说一句,我不知道这是示例代码还是真实代码,但如果它是真实的,那么同步下载数据是个糟糕的主意,在viewDidLoad中下载数据更糟糕。

    如果您通过nib创建了scrollview,并且nib具有自动布局功能,那么它将不允许您滚动

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

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

    将滚动视图的帧大小设置为你的图像大小,并将内容大小设置得更高一点。是的。图像将显示(只是不滚动)。(并同意在viewDidLoad中下载。我正在浏览斯坦福的课程。在下一个作业中,这将成为多线程。)我必须找到发生这种情况的原因这听起来可能是。。。我正试图找到实用程序窗口,但运气不好。FWIW,我正在使用最新版本的xcode&通过故事板创建我的滚动视图。自动布局是问题所在。起初我不明白他的描述。基本上,先选择故事板,然后选择文件检查器(第一个选项卡)&取消选中“使用自动布局”有人知道为什么会这样吗?我哪儿也找不到。啊,我想可能就是这个。我试着记录了这两个版本&看起来它们的大小不同:2012-12-14 10:33:35.909 SimpleScrollView[3439:c07]scrollView内容大小:3264.000000 x 2448.000000 2012-12-14 10:33:35.909 SimpleScrollView[3439:c07]scrollView框架:320.000000 x 460.000000