将ImageView调整为UIViewContentModeScaleAspectFit内容

时间:2013-10-14 11:46:47

标签: ios uiimageview

很抱歉,这听起来像是一个愚蠢的问题。 我希望在我将其缩放以适应之后获得图像的矩形大小。 我想做的一种方法是,如果我可以调整imageView本身的大小并使用“.frame”,我可以这样做吗?还有其他办法可以摆脱周围的空白区域吗?

1 个答案:

答案 0 :(得分:1)

基于imageView的contentModeUIViewContentModeScaleAspectFit,一旦设置了imageView的image属性,就可以使用以下内容来确定imageView的大小(以磅为单位)屏幕上的图像:

-(CGSize)onScreenPointSizeOfImageInImageView:(UIImageView *)imageView{
    CGFloat scale;
    if (imageView.frame.size.width > imageView.frame.size.height) {
        if (imageView.image.size.width > imageView.image.size.height) {
            scale = imageView.image.size.height / imageView.frame.size.height;
        } else {
            scale = imageView.image.size.width / imageView.frame.size.width;
        }
    } else {
        if (imageView.image.size.width > imageView.image.size.height) {
            scale = imageView.image.size.width / imageView.frame.size.width;
        } else {
            scale = imageView.image.size.height / imageView.frame.size.height;
        }
    }
    return CGSizeMake(imageView.image.size.width / scale, imageView.image.size.height / scale);
}

然后根据图像的屏幕尺寸设置图像视图的边框,以消除图像周围的“空白区域”,例如;

myImageView.image = myImage;
CGSize imageSize = [self onScreenPointSizeOfImageInImageView:myImageView];
CGRect imageViewRect = myImageView.frame;
imageViewRect.size = imageSize;
myImageView.frame = imageViewRect;