2011-01-05 9 views
0

Quartzを使用してdrawRectメソッドをオーバーライドするカスタムUIViewを作成しました。私は最終的には、私はそれをしたいと思う方法を正確に動作させることができたが、私は頭を上げることができない、本当に独特な振る舞いがある。アルファに色あせたQuartz 2D描画UIView

私は=として定義されたカスタムUIViewのを使用する場合> (@interfaceのTagView:UIViewの) 1に設定し、それのアルファ値を持つ、それは私がそれを期待するとおりに描画します。

私が遭遇した問題は、ある特定の例では0.3のアルファを描画したいから、0.3にアルファベットのIBを追加したということです。私は、CGContextSetRGBStrokeColorとCGContextSetRGBFillColorを使用して、異なるRGB値を設定した多数のアーティファクトを描画します。これらはすべて3つのRGB値すべてに対してゼロ以外の値を設定しようとするまでうまく動作します。

私が使用しているかどうかを説明する: CGContextSetRGBStrokeColor(context、1,1,0,1); 私は黄色の線を得る。 私が使用している場合: CGContextSetRGBStrokeColor(context、1,1、0.001、1); 私は何も得られません。

RGB値の1つを0に設定している限り、それは満足していると思いますが、3つの値がすべてゼロでないと失敗します。また、ビューのアルファが1.0に設定されている場合(つまり、何も問題なく白を描画できます)、これはすべて正常に動作しています。

これを引き起こしている可能性や問題の診断方法について考えている人はいませんか?

答えて

0

Garrrrrrr ...フォーラムで質問を投稿するだけの神秘的な機能のようですが、30秒後にもう一度やり直してください! (もちろん、これは2 1/2日後に髪を引っ張ってからです...)。

私は誤ってビューの背景色を白くしていたようです。 0.3アルファでは、それは実際にはあまり明らかではありませんでした。白い白い==見えないので、私はそれが線が目に見えなかった理由だと思う。私はALMOSTイエローが現れたと思ったでしょうが、それはそうではないようです。

0

カスタムビューのopaqueプロパティをNOに設定してみてください。

関連する問題