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

  • 由于其image和imageView的大小不同,为什么它不是洋红色的?
  • 为什么是黄色?我通过使用
  • 加载了图像
    [UIImage imageNamed:@"Rainbow_Circle.png"]
    myImage.frame = {0,0,50, 50},
    为什么会有舒展呢?我如何检查伸展度?
  • 规模重要吗?从.png加载后,比例为2,而不是1。

  • 谢谢!

    最佳答案

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

    例如
    UIViewContentModeScaleToFill 通过更改内容的纵横比(如果需要)来缩放内容以适合其自身大小。

    UIViewContentModeScaleAspectFit 通过保持纵横比来缩放内容以适合视图的大小。视图边界的所有剩余区域都是透明的。

    在您的情况下,由于图像尺寸小于imageView,并且如果您使用了 UIViewContentModeScaleToFill ,则图像可能会被拉伸。

    在您的情况下,应为imageView赋予背景色为洋红色。品红色和黄色的逻辑不清楚。

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

    关于ios - 颜色在iOS中未对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43445872/

    10-14 21:49