根据移动设备的高度调整图像大小

时间:2016-12-11 15:21:16

标签: ios swift mobile

如何根据横向模式下移动设备的高度调整图像大小?我有一个宽图像(标尺),并希望能够来回滑动图像。我试过缩放图像,但我似乎无法让它工作。

func resizeImage(size: CGSize)  {


    let scaleFactor =    imageView.bounds.height / size.height

    let newHeight = imageView.bounds.height * scaleFactor
    let newWidth  = imageView.bounds.width  * scaleFactor

    var newSize: CGSize
    newSize = CGSize(newWidth, newHeight)

    imageView.frame =  CGRect(origin: imageView.frame.origin, size: newSize)

    scrollView.contentSize = imageView.bounds.size
    scrollView.autoresizingMask = [.flexibleRightMargin, .flexibleLeftMargin, .flexibleTopMargin, .flexibleRightMargin]
    self.scrollView.contentMode = UIViewContentMode.scaleAspectFit;
}

2 个答案:

答案 0 :(得分:0)

参考此链接=> https://github.com/roadfire/ScaleImageByDevice它正在为我工​​作

答案 1 :(得分:0)

如果您使用的是故事板,那么使用自动布局约束会更容易。您必须将Equal Height ConstraintMultiplier一起使用。虽然我也是初学者,并且没有将这种方法用于横向模式,但我认为它也适用于景观。

请按以下步骤操作: -

  1. 假设您在创建视图时在故事板中使用的视图是iPhone 7.因此您的屏幕高度为667

  2. 现在,假设在此视图中,您的图片看起来很完美,高度为200。 因此,请采用200/667 = 0.299

  3. 的比率
  4. 现在通过使用比率作为乘数选择两个视图(即imageView和superView)来设置Equal Height Constraint

  5. 您可以通过底部View as:

  6. 选项检查其他设备和方向

    最后,图像的高度约束应如下所示。 My height ratio is 0.4 (pic here)