2009-06-13 63 views
4

我有一個球分配給Interface Builder中的UIImageView。 UIImageView中的IBOutlet連線到相應的UIViewController。圖像有白色背景。當我將它分配給IB中的UIImageView時,背景是透明的。在IB中,我將UIImageView設置爲透明背景和方向填充。在運行時刪除UIImageView中的圖像背景

當我分配的UIImageView在運行時的圖像:

所述的UIImageView正方形具有白色背景其中球不顯示。意味着所有四個角落。 IB版本在運行時不顯示白色背景並且程序化版本有什麼區別?

回答

6

除了設置背景顏色清除之外,請確保您設置了self.ball.opaque = NO;。否則,仍然會繪製白色背景。我相信你必須設置這兩個,無論你使用IB還是Xcode來創建視圖 - 但是IB可能已經爲你設置了它們。

+0

感謝這兩個建議。我的錯。有一個PNG版本的JPG具有透明背景。 IB正在使用PNG,而我正在以編程方式使用JPG。啊!但是,如果圖像沒有透明背景,那麼您可以通過簡單的方式來做到這一點。不透明不會改變它。我還嘗試通過包含Quartz框架和self.ball.layer.opacity = 0.0f來設置不透明度;但不能再去。修改圖像是最簡單的路線。 – 4thSpace 2009-06-14 01:32:50

2

如果需要以編程方式刪除背景,請參閱"Bitmap Images and Image Masks"指南。在這一點上,我沒有其他想法......只是使用CGImageCreateWithMaskingColors。

如果你的*。PNG(或任何圖形資源文件)不具有內置的透明度(只白色背景),但IB它看起來像透明的 - 可能是阿爾法財產小於1爲您的UIImageView你會看到部分透明的圖像。