2017-04-17 58 views
1

在我的理解,如果图像和imageView大小不一样,它将被标记为洋红色。在我的应用程序中,我有一个myImage.imageView = {50,50},myImage.image = {63,63} scale = 2的名为myImage的图像,但它以黄色标记,而不是洋红色标记。我的问题是:颜色错位在ios

  1. 由于它的图像和imageView的大小不一样,它为什么不是洋红色?
  2. 为什么它是黄色的?我用
  3. 加载图像

[UIImage imageNamed:@"Rainbow_Circle.png"]

myImage.frame = {0,0,50, 50},

为什么有拉伸发生了什么?我如何检查伸展?

  1. 规模很重要吗?我从.png中加载它之后,比例是2,而不是1.

谢谢!

回答

1

通常我们为imageView设置框架。如果图像的大小与imageView的大小不兼容,它将根据您为imageView设置的内容模式显示。

例如 UIViewContentModeScaleToFill缩放内容通过必要时改变所述内容的纵横比,以适应自身的尺寸。

UIViewContentModeScaleAspectFit通过保持高宽比来缩放内容以适合视图的大小。视图边界的任何剩余区域都是透明的。

在你的情况,因为图像尺寸比imageView小,如果你会用UIViewContentModeScaleToFill,那么图像可能会出现拉伸。

在你的情况下,你应该已经为imageView提供了洋红色的背景颜色。洋红色和黄色的逻辑不清楚。

如果您尝试在绘制图像之前设置框架,也就是如果在viewDidLoad中使用,请确保使用layoutIfNeeded方法。

1

我想通了!它是洋红色的,因为图像的单元格框架不是整体。一旦它得到解决,它的所有子视图运作良好。