2009-06-13 10 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

両方の提案に感謝します。私のせい。透明な背景を持つJPGのPNGバージョンがありました。 IBはプログラムでJPGを使用していましたが、PNGを使用していました。うん!しかし、画像に透明な背景がない場合、簡単な方法でそれを行うことはあまりありません。不透明はそれを変更しません。また、Quartzフレームワークとself.ball.layer.opacity = 0.0fをインクルードして不透明度を設定しようとしました。しかし、もう一度行くことはありません。画像を変更するのが最も簡単な方法です。 – 4thSpace

2

プログラムでバックグラウンドを削除する必要がある場合は、"Bitmap Images and Image Masks"ガイドを参照してください。私はこの点について他には考えていません...ただCGImageCreateWithMaskingColorsを使用しています。

あなたの* .PNG(または任意のグラフィックリソースファイル)に透過性が組み込まれていますが(白い背景のみ)、IBの場合は透明のように見えます - UIImageViewではアルファプロパティあなたは部分的に透明な画像を見る。