2017-04-17 19 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

我想通了!它是洋紅色的,因爲圖像的單元格框架不是整體。一旦它得到解決,它的所有子視圖運作良好。