无法在iPhone4和iPhone5之间调整UIImageView的大小

时间:2013-12-22 22:59:42

标签: ios objective-c uiimageview

我正在创建一个应用,我需要在模态屏幕中显示图像。在我的xib中,我将UIImage视图设置为屏幕的完整大小。当图像显示时,它在屏幕中居中。这在iPhone5上运行良好。但是,当我恢复到4s进行测试时,无论我做什么都无法缩小图像视图,使图像在屏幕中居中,导致图像显示在页面的一半,因为图像视图太大对于屏幕。滚动视图似乎正确调整大小,我不确定为什么图像不会。

4s enter image description here症状的屏幕截图 相关代码如下:

[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);

1 个答案:

答案 0 :(得分:0)

有很多事情可能出错。

  1. 确保在scrollView上将autoresizesSubviews设置为NO,或将autoresizingMask上的imageView设置为无(您不希望imageView.frame 1}}在scrollView.frame更改时更改。

  2. 您确定要将图像居中吗?如果图像居中并且图像视图小于它(这可能是iphone 4上的情况),那么显然将隐藏图像的一部分。您确定不希望contentMode设置为UIViewContentModeScaleAspectFit吗?或者甚至更好,您确定不希望imageView与图像具有相同的尺寸,并使用scrollView来查看图像吗?