【问题标题】:Why Imageview always stretched show image stretched iOS?为什么Imageview总是拉伸显示图像拉伸iOS?
【发布时间】:2017-01-03 09:37:19
【问题描述】:

我正在使用一个 imageView,它包含不同的图像,但有些图像被拉伸了。如何在没有任何拉伸的情况下显示图像?我已将 contentMode 设置为适合方面。但是,图像不是 imageView 的大小,而是大小不同。我想将图像显示为相同大小而不拉伸。

   imageview1 = [[UIImageView alloc]initWithFrame:CGRectMake(30, 10, 190, 190)];
   imageview1.contentMode = UIViewContentModeScaleAspectFit;
   imageview1.clipsToBounds = YES;

【问题讨论】:

  • UIViewContentModeScaleAspectFill
  • 尝试更改 clipsToBounds = false;
  • 是的,我也使用它,但它不会拍摄整个图像,某些部分将使用“UIViewContentModeScaleAspectFill”剪切。
  • @VishalSonawane 仍然无法正常工作,您对任何第三方库有任何想法吗?
  • @ashmi123 你在 imageview 中设置的图片尺寸是多少?

标签: ios objective-c imageview


【解决方案1】:

请在设置框架之前尝试设置内容模式,如下所示

 imageview1.contentMode = UIViewContentModeScaleAspectFit;
 imageview1 = [[UIImageView alloc]initWithFrame:CGRectMake(30, 10, 190, 190)];      
 imageview1.clipsToBounds = YES;

【讨论】:

    【解决方案2】:

    如果您想在不拉伸且大小相同的情况下显示每个图像,请将UIImageView's 实例的contentMode 属性设置为UIViewContentModeScaleAspectFill。比如——

    imageview1 = [[UIImageView alloc]initWithFrame:CGRectMake(30, 10, 190, 190)];
    imageview1.contentMode = UIViewContentModeScaleAspectFill;
    imageview1.clipsToBounds = YES;
    

    UIViewContentModeScaleAspectFill,将填充image view 的整个区域,保持aspect ratio 不变。在填充整个image view 的过程中,verticalhorizo​​ntal 长度将被完全覆盖,并且将继续填充直到完全填充其他维度。在此过程中,您的内容(跨垂直水平)将在框架外可见。为了剪辑这些额外的内容,我们将image viewclipsToBounds 属性设置为YES

    UIViewContentModeScaleAspectFit,将填充image view's 区域,直到verticalhorizontal 的任一长度被完全填充,保持纵横比不变。如果您不需要将每个图像显示为与另一个方向相同的大小(如果垂直填充比水平填充,反之亦然),则它不会被完全覆盖。因为这会在未完全覆盖的方向上显示空白。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多