颜色在ios中未对齐

时间:2017-04-17 05:51:28

标签: ios objective-c performance

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

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

    [UIImage imageNamed:@"Rainbow_Circle.png"]

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

    为什么会出现这种情况?我怎么能检查拉伸?

    1. 规模是否重要?从.png加载后,比例为2,而不是1。
    2. 谢谢!

2 个答案:

答案 0 :(得分:1)

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

例如 UIViewContentModeScaleToFill 通过在必要时更改内容的宽高比来缩放内容以适合自身的大小。

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

在你的情况下,因为图像尺寸小于imageView,如果你使用了说 UIViewContentModeScaleToFill ,那么图像可能会显得拉伸。

在您的情况下,您应该为imageView提供背景颜色作为品红色。洋红色和黄色的逻辑尚不清楚。

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

答案 1 :(得分:1)

我明白了!它是品红色的,因为图像的单元格框架不是整数。一旦得到修复,它的所有子视图都能正常运行。