iOS 3.1.2:UIImageViews不尊重帧大小

问题描述:

我有一个通用的iOS应用程序,我的所有图像都是为iPad设计的。要在iPhone上正确调整它们的大小,我使用UIImageView Frame属性。但是,我只是在运行iOS 3.1.2的iPhone 1上测试了我的应用程序,并且所有图像都显示为全尺寸!它们在我测试过的所有运行iOS 4的设备上正确显示。有谁知道这是为什么或如何解决它?我不想仅制作所有图像的iPhone大小版本,因为我通过更改框架大小来放大和缩小应用中的图像。iOS 3.1.2:UIImageViews不尊重帧大小

谢谢! Anita

你可以缩放图像的一半图像大小和比例来填充,将工作,我会遵循。

UIImage* originalImage = [UIImage imageNamed:@"demo.jpg"]; 
originalImage = [UIImage imageWithCGImage:[originalImage CGImage] scale:2.0 orientation:UIImageOrientationUp]; 

何地,你都该图像设置为任何控件,可以说的UIView

UIView *demoView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, originalImage.size.width, originalImage.size.height)]; 
+0

我认为在xib中更改自动调整字段是最容易的,但是我认为你的代码是最有效的,因为我相信你的代码会导致更低的内存占用。我认为更改imageView上的autoresizingMask会影响图像呈现的方式,但图像具有所有数据,而您的代码通过调整图像本身的大小来节省空间。 – Sam

+0

@Anita随时随地以任何方式,我看到你的聪明饼干工作室,好东西。 :) –

+0

雅,我现在是一个通讯订阅。 :)祝你好运安妮塔。 – Sam

如果您使用的界面生成器厦门国际银行,请确保您已设置了自动调整大小为的UIImageView。

如果您在代码中创建的UIImageViews,你会想是这样的:

 myImageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin; 

尝试删除

sizeToFit 

财产。我有同样的问题,并删除sizeToFit解决。