在故事板中添加了UIScrollView和UIImageView - 图像被压扁而不会滚动

Ale*_*ber 1 iphone objective-c scrollview uiscrollview ios

在Xcode 5.0.2我创建了一个通用的应用程序,并拖了UIScrollViewUIImageView到iPhone和iPad故事板(这里全屏):

Xcode截图

然后我试图board.png通过ViewController.m中的以下代码加载图像(版权所有Wikipedia Commons,Denelson83):

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIImage *img = [UIImage imageNamed:@"board"];
    NSLog(@"%s: img=%@ (%f x %f)", __PRETTY_FUNCTION__,
          img, img.size.width, img.size.height);
    _imageView.image = img;
    _scrollView.contentSize = img.size;
}
Run Code Online (Sandbox Code Playgroud)

但是结果被压扁并且图像无法滚动:

-[ViewController viewDidLoad]: img=<UIImage: 0x10912d770> (1000.000000 x 961.500000)
Run Code Online (Sandbox Code Playgroud)

应用截图

有什么建议吗?我怀疑图像是在底部切断的,因为我运行的是3.5英寸的iPhone模拟器?如何解决这个问题呢?

更新:

我试图在滚动视图中添加四个0约束,这样它就占据整个屏幕,但是当我用Cmd-Arrow旋转模拟器时 - 滚动视图不会调整大小(这里是Xcode的全屏):

约束截图

旋转的app

更新2:

当我UIImageView在Xcode故事板中将"视图模式" 更改为"左上角"并将源代码更改为以下内容:

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIImage *img = [UIImage imageNamed:@"board"];
    _imageView.image = img;
    _imageView.frame = CGRectMake(0, 0, img.size.width, img.size.height);
    _scrollView.contentSize = img.size;
}
Run Code Online (Sandbox Code Playgroud)

然后我得到以下结果,无法滚动:

应用截图

并且也不能旋转(不填满屏幕):

旋转的app

eob*_*bet 5

请记住,故事板图像视图已从故事板中设置其大小,并且在代码中加载图像后,您永远不会调整任何大小.所以,这是我的头脑,但尝试:

UIImage *image = [UIImage imageNamed:@"board"];
_imageView.image = image;
_imageView.bounds = CGRectMake(0, 0, image.size.width, image.size.height);


- (void)viewDidLayoutSubviews
{
    _scrollView.contentSize = _imageView.bounds.size;
}
Run Code Online (Sandbox Code Playgroud)