Ios Can';t在iPhone4和iPhone5之间调整UIImageView的大小

Ios Can';t在iPhone4和iPhone5之间调整UIImageView的大小,ios,objective-c,uiimageview,Ios,Objective C,Uiimageview,我正在制作一个应用程序,我需要在模式屏幕中显示图像。在我的xib中,我将UIImage视图设置为屏幕的全尺寸。当图像显示时,它位于屏幕中央。这在iPhone5上运行良好。但是,当我返回到4s进行测试时,我似乎无法缩小图像视图,无论我如何使图像居中于屏幕,导致图像显示在页面的一半,因为图像视图对于屏幕来说太大。滚动视图的大小似乎调整正确,我不知道为什么图像wiew不会 4s上症状的屏幕截图 相关代码如下: [self.scrollView setZoomScale:self.scrollView.

我正在制作一个应用程序,我需要在模式屏幕中显示图像。在我的xib中,我将UIImage视图设置为屏幕的全尺寸。当图像显示时,它位于屏幕中央。这在iPhone5上运行良好。但是,当我返回到4s进行测试时,我似乎无法缩小图像视图,无论我如何使图像居中于屏幕,导致图像显示在页面的一半,因为图像视图对于屏幕来说太大。滚动视图的大小似乎调整正确,我不知道为什么图像wiew不会

4s上症状的屏幕截图 相关代码如下:

[self.scrollView setZoomScale:self.scrollView.minimumZoomScale animated:YES];
[self.myView setTranslatesAutoresizingMaskIntoConstraints:YES];
[self.scrollView setTranslatesAutoresizingMaskIntoConstraints:YES];
[self.imageView setTranslatesAutoresizingMaskIntoConstraints:YES];

NSURL *url = [NSURL URLWithString:self.myImage];
NSData *data = [NSData dataWithContentsOfURL:url];
img = [[UIImage alloc] initWithData:data];

[[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(orientationChanged:)  name:UIDeviceOrientationDidChangeNotification  object:nil];

[self.scrollView setZoomScale:self.scrollView.minimumZoomScale animated:YES];
CGSize imageSize  =  [self currentScreenBoundsDependOnOrientation];

self.imageView.frame = self.myView.bounds ;
self.scrollView.frame = self.myView.bounds;

imageWithAlignmentRectInsets:UIEdgeInsetsMake(0, 0, 20, 20);

有很多事情可能会出错

  • 确保滚动视图上的
    autoresizesSubviews
    设置为
    NO
    ,或
    imageView
    上的
    autoresizengmask
    设置为none(当
    scrollView.frame
    更改时,您不希望
    imageView.frame
    更改)

  • 是否确实要将图像居中?如果图像居中,并且图像视图比它小(这可能是iPhone4上的情况),那么显然图像的一部分将被隐藏。是否确实不希望将
    contentMode
    设置为
    UIViewContentModeScaleAspectFit
    ?或者更好,您确定不希望
    图像视图
    与图像大小相同,并使用
    滚动视图
    查看图像吗


  • Sulthan,是的,我确实设置了纵横比。。但是,由于4上的imageview更大,并且不会调整到460,因此我的图像离屏幕只有一半。我的意思是我希望图像在屏幕上居中,而不一定只是视图。另外,如果我这样做的话,图像真的太大了,我需要手动调整图像的大小吗?结果是一样的。你试过调整图像的大小吗。我想这会修正iPhone4和iPhone5上的帧值是多少?就是这样。主视图框太大,所以我只是根据屏幕大小进行了修复。谢谢@Sulthan