UIImageView使用autolayout垂直拉伸

时间:2016-06-01 03:25:58

标签: ios swift autolayout

我在UIImageView内有scrollview。我已将uiimageview的宽度固定为屏幕宽度。现在如果我显示更大的图像,由于宽度是固定的,图像看起来非常垂直拉伸。

如果我使用宽高比:

imageViewTest.contentMode = .ScaleAspectFit

其不良后果。因为我想要显示orignal图像。

将不胜感激任何帮助。

由于

1 个答案:

答案 0 :(得分:2)

  1. 删除底部 constraint
  2. 添加高度 constraint
  3. enter image description here

    1. 制作高度限制的出口,名为: constraintImageViewHeight
    2. 更新高度约束的值

    3. viewDidlayoutSubviews

      中写下此内容
      -(void)viewDidLayoutSubviews {
         [super viewDidLayoutSubviews];
         [self calculateSizeForImageViewWith:testImage];
      }
      
      -(void)calculateSizeForImageViewWith:(UIImage *)img {
             float orignalWidth = img.size.width;
             float orignalHeight = img.size.height;
      
             float change = _imageViewDetail.frame.size.width;
      
             if (orignalWidth > 0) {
                  float resizedAspectHeight = (orignalHeight * change)/orignalWidth;
                  _constraintImageViewHeight.constant = resizedAspectHeight;
             } else {
                 _constraintImageViewHeight.constant = 0;
               }
        }