如何在UIimageView中设置顶部避免空间的图像

我有一个UIImageView与内容模式大小为220×155的方面适合。 我以不同的分辨率dynamic插入不同的图像,但都大于UIImageView的大小。 由于内容模式设置为Aspect Fit,图像将根据比例进行缩放以适合UIImageView。

我的问题是,如果例如在UIImageView内的图像缩放到220×100,我想UIImageView从155高度缩小到100以避免我的元素之间的空间。

我怎样才能做到这一点?

我写了这个方法来获取图像视图的框架,一旦它加载图像。 所以,对我的要求和你的情况一样:

1)带宽高比内容模式的图像视图2)获取图像的确切帧(这样您可以重新定位图像视图)

希望这可以帮助:

- (CGRect) getFrameOfImage:(AsyncImageView *) imgView { if(!imgView.loaded) return CGRectZero; CGSize imgSize = imgView.image.size; CGSize frameSize = imgView.frame.size; CGRect resultFrame; if(imgSize.width < frameSize.width && imgSize.height < frameSize.height) { resultFrame.size = imgSize; } else { float widthRatio = imgSize.width / frameSize.width; float heightRatio = imgSize.height / frameSize.height; float maxRatio = MAX (widthRatio , heightRatio); NSLog(@"widthRatio = %.2f , heightRatio = %.2f , maxRatio = %.2f" , widthRatio , heightRatio , maxRatio); resultFrame.size = CGSizeMake(imgSize.width / maxRatio, imgSize.height / maxRatio); } resultFrame.origin = CGPointMake(imgView.center.x - resultFrame.size.width/2 , imgView.center.y - resultFrame.size.height/2); return resultFrame; } 

我在这里使用的AsyncImageView但它将工作与UIImageView一样好。 要记住的重要的事情是在图像加载之后调用这个方法。

干杯!

它非常简单,你只需要得到图像的实际大小,这可以通过

 UIImage *image = [UIImage imageName:@""]; 

那么你只需要设置框架就像: –

 imageView.frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height); 

希望这可以帮助你。

一旦imageview的图像设置为新的图像(从而缩放),你可以得到imageview(imageview.image.size.height)内的图像的高度,并相应地设置imageview的高度(框架)。

Interesting Posts