我有一个UIImageView目标是按比例缩小它通过给它一个高度或宽度。

UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 

//Add image view
[self.view addSubview:imageView];   

//set contentMode to scale aspect to fit
imageView.contentMode = UIViewContentModeScaleAspectFit;

//change width of frame
CGRect frame = imageView.frame;
frame.size.width = 100;
imageView.frame = frame;

图像确实调整了大小,但位置不在左上方。缩放image/imageView的最佳方法是什么?我如何纠正位置?


当前回答

这对我来说很好Swift 2.x:

imageView.contentMode = .ScaleAspectFill
imageView.clipsToBounds = true;

其他回答

这对我来说很好Swift 2.x:

imageView.contentMode = .ScaleAspectFill
imageView.clipsToBounds = true;
imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.clipsToBounds = YES;

设置您的ImageView通过选择模式为方面填充,并选中剪辑子视图框。

我使用以下代码。imageCoverView是UIView持有UIImageView

if (image.size.height<self.imageCoverView.bounds.size.height && image.size.width<self.imageCoverView.bounds.size.width)
{
    [self.profileImageView sizeToFit];
    self.profileImageView.contentMode =UIViewContentModeCenter
}
else
{
    self.profileImageView.contentMode =UIViewContentModeScaleAspectFit;
}

下面是如何轻松扩展它的方法。

这适用于2。x的模拟器和iPhone。

UIImage *thumbnail = [originalImage _imageScaledToSize:CGSizeMake(40.0, 40.0) interpolationQuality:1];