オーバーライドされたUIView
サブクラスがあります。drawRect
描画コードはビューの全領域を埋めません。その一部は透明であることを意図しています。しかし、画面上に描画すると、透明であるべきものは黒になります。 適切に透明にするにはどうすればよいですか?
を に設定するbackgroundColor
と[UIColor clearColor]
、ビュー全体が消えます。他の色に設定すると、黒い領域がその色に変わります。に設定opaque
しNO
ても同じ効果があります。以下のように、最初に透明な長方形を描くとdrawRect
:
[[UIColor clearColor] setFill];
UIRectFill( rect );
……また黒くなる。上記のコードで別の色を使用すると、その色が描画されます。使用する色を部分的に透明にすると、黒が透けて見えます。
更新:ビューに透明度のグラデーションがあることが関連している可能性があります。UIView
境界内に青い四角形を描画し、それ以外はすべて透明のままにする、非常に単純なサブクラスでテストしてみました。そのビューを期待どおりにレンダリングするように設定しますopaque=NO
。