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