2010-01-12 128 views
0

我碰到一個奇怪的場景在我的代碼來了一天的UIImage的:的UIImageView和大小相等

我有一個與setImage加載圖像一個UIImageView :. UIImageView事先使用具有圖像的確切大小(41 * 41像素)的幀進行初始化。我還將內容模式設置爲UIViewContentModeCenter,這應確保我的圖像永遠不會縮放。

現在,當我看着我的圖像視圖時,我發現圖像有點水平裁剪,看起來有點模糊(這是一個警告信號,指出在背景中發生了一些重新縮放)。相反,如果我用一個額外的像素寬度初始化我的圖像視圖,那麼所有圖像視圖都會完美(但是,我的圖像視圖現在比我的圖像寬一個像素)。

此外,如果我初始化我的UIImageView與initWithImage:這似乎也很好。初始化後我檢查了這個視圖的框架,發現它的大小相同:41 * 41。

所以底線是我有這個問題的幾個解決方法,但我想了解這裏發生了什麼。我能想到的唯一解釋是:

  1. 有一個在框架
  2. 圖像的渲染不特定尺寸的圖像很好地工作中的錯誤。我知道,例子紋理總是2的權力,但我懷疑這對UIImageView有很大的意義。

爲了記錄我正在爲OS 3.0編譯並且問題在模擬器和設備上都會發生。

回答

4

UIImageView是否包含在任何其他視圖?我之前有過的一件事是由分數像素偏移引起的模糊控制。即如果您使用除數計算幀並以非整數浮點值結束,則UIKit可以在某些偏移和大小上添加一些奇怪的模糊。

因此,圖像視圖可能具有整數大小,但考慮到父代時可能不是絕對框架。

+0

而你是正確的:)我正在定位我的圖像視圖在一些浮點座標。我將它們四捨五入,現在它工作正常。 – 2010-01-12 10:23:45