【问题标题】:UIImageView Aspect Ratio?UIImageView 纵横比?
【发布时间】:2014-06-13 20:09:52
【问题描述】:

我有一个尺寸为 320X460 的图像,我想创建一个高度应为 450UIImageView。为了保持纵横比,我动态计算了 UIImageView = (320/460)*450 = 313.043 的宽度。并将 UIImageView 的 contentMode 设置为 UIViewContentModeScaleAspectFit。并将图像(320x460)设置为图像视图,但它有些模糊。

注意:如果我不将UIImageView 的大小调整为313.043X450,图像会非常清晰。那么我犯了什么错误呢?

【问题讨论】:

  • 如果要调整 UIImageView 的大小,请不要设置它的内容模式
  • 另外,尝试将大小设置为整数。只需使用round:round(313.043)
  • @RatikantaPatra。我没有调整 uiimage 的大小我正在调整 UIImageView 的大小所以如果我不设置内容模式它会缩小...
  • @EsbenB 我认为这不是解决方案...
  • RatikantaPatra 建议您将 contentMode 设置为 UIViewContentModeScaleToFill。调整图像大小时,始终存在图像模糊的风险。在这种情况下,UIimageView 需要“压缩”几个像素

标签: ios uiimageview aspect-ratio contentmode


【解决方案1】:

如果我理解这个问题,这应该回答它。

首先在图像视图中设置图像的纵横比。

myView.contentMode = .scaleAspectFit

接下来,您的图像可能会模糊,因为它是.png 或其他光栅化格式。您需要使用 .pdf as recommended by Apple 或至少另一种矢量化格式。光栅化图像具有图像中所有像素的值,因此当图像被拉伸得太远时,它只会复制和模糊像素。矢量化图像不会模糊,因为它们实际上只是关于如何绘制/渲染相应图像的一系列说明。

【讨论】:

    【解决方案2】:

    如果您手动调整UIImageView 的大小,请将内容模式设置为UIViewContentModeScaleAspectFill

    如果您想保持内容模式UIViewContentModeScaleAspectFit,请不要将 imageview 的大小调整为 313。图像将调整最大可能的宽度和高度,保持其纵横比。

    【讨论】:

      猜你喜欢
      • 2012-03-04
      • 2015-02-28
      • 2015-07-01
      • 2017-12-03
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      • 1970-01-01
      相关资源
      最近更新 更多