如何以固定的宽度和自动布局正确缩放图像?

我有一个dynamic的UIImage和一个固定宽度为280.0px的UIImageView,我使用自动布局。 在UIImage视图中,我设置了宽度和高度约束,并降低了高度约束的优先级。 我select了“方面适合”,并提出了内容拥抱和压缩优先级为1000.在这种情况下,UIImageView的大小,以保持比例,但高度是我想要的更大。 由于UIImageView的顶部和底部都有空白空间,因此保留了宽高比。 我想删除这些空间,并自动调整高度,以完美适合UIImage。

像这样的东西…

UIImage *image = ...; UIImageView *imageView = ...; imageView.image = image; float ar = image.size.width/image.size.height; NSLayoutConstraint* aspectConstraint = [NSLayoutConstraint constraintWithItem: imageView attribute: NSLayoutAttributeWidth relatedBy: NSLayoutRelationEqual toItem: imageView attribute: NSLayoutAttributeHeight multiplier: ar constant: 0]; [parentView addConstraint: aspectConstraint]; 

我解决了如下:

 -(CGFloat) scaleImageAutoLayout:(UIImageView *)imageView withWidth:(CGFloat)width { CGFloat scale = width/imageView.image.size.width; CGFloat height = imageView.image.size.height * scale; NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(imageView); [imageView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:[NSString stringWithFormat:@"V:[imageView(%f)]",ceilf(height)] options:0 metrics:nil views:viewsDictionary]]; return height; }