旋转 iPhone 并保持图像的比例

Posted

技术标签:

【中文标题】旋转 iPhone 并保持图像的比例【英文标题】:Rotating iPhone and keeping image's proportions 【发布时间】:2011-08-10 12:13:14 【问题描述】:

我有一个 UIScrollView,它包含 UIImageViews。所有图像都保持其图像比例 - 我的意思是,例如纵向图像高而窄,而横向图像短而宽。我在屏幕上同时有大约 4 张图像(垂直 2 张,水平 2 张),然后我可以向下滚动。

我的问题是旋转设备。我用

[self.imageScrollView setAutoresizingMask: UIViewAutoresizingFlexibleLeftMargin];// (etc)

和 imageView 相同的方法。但是图像并没有保持它们的比例。如果我设置: UIViewAutoresizingFlexibleWidth - 图像宽但高度太小 UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight - 图像水平拉伸,垂直方向变小。

我需要旋转设备(纵向->横向),制作这 2 张图像(我彼此相邻)以填补空白并保持这些图像的比例。

【问题讨论】:

换句话说:我想旋转设备,在 UIImageView 中旋转图片并保存它的 x:y 比例(不拉伸)。 【参考方案1】:

试试这个功能..

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
    UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
        if (orientation == UIDeviceOrientationPortrait)  //Device is portait 
            //Resize the images to fit this orientation
                         image1.frame = CGRectMake(x,x,x,x);
        
        else 
            //Device is landscape..
           
    return YES;

【讨论】:

没有别的办法了吗?会有这么多的计数,这样可能会很慢.. :/【参考方案2】:
imageView.contentMode = UIViewContentModeScaleAspectFill;

这解决了我的问题^^

【讨论】:

以上是关于旋转 iPhone 并保持图像的比例的主要内容,如果未能解决你的问题,请参考以下文章

旋转和调整图像大小 + iPhone

如何根据正在使用的 iphone 按比例调整图像大小

基于横向的应用程序的 iPhone 启动图像

从 AVCaptureSession 捕获的 iPhone 图像比例

如何将旋转图像保存在 iPhone 相册中?

如何处理所有可用 iPhone 分辨率的图像比例?