2010-07-15 9 views
0

Je crée une application iPhone avec des particules évoluant sur un UIView personnalisé, dessiné avec Core Graphics. Je veux que mes particules laissent une trace, donc quand la vue est repeinte, je veux qu'elle remplisse l'arrière-plan avec 0.8 alpha.Peinture transparente sur UIView

Quelqu'un sait-il comment faire? J'ai essayé de définir la couleur d'arrière-plan de la vue sur quelque chose de transparent dans IB, mais cela n'aide pas, cela ne fait que rendre visible la vue sous-jacente. En bref, j'ai besoin d'aide pour définir la couleur claire de UIView sur quelque chose de transparent.

Merci

Répondre

1

Vous ne pouvez pas faire peindre votre vue sur ce qui s'y trouve déjà. Chaque fois que drawRect est appelé, vous devez dessiner le contenu entier de la vue à partir de zéro.

Vous pouvez utiliser un CGBitmapContext à la place, que vous pouvez conserver aussi longtemps que vous le souhaitez. Ensuite, à votre avis, il suffit de dessiner le CGBitmapContext dans son intégralité dans la vue.

http://developer.apple.com/mac/library/documentation/GraphicsImaging/Reference/CGBitmapContext/Reference/reference.html

+0

C'est la solution que j'ai finalement suivie :) – Accatyyc

2

Si vous voulez que votre point de vue contrôle transparent la propriété opaque. Si elle est opaque - aucune transparence ne se produit (http://developer.apple.com/iphone/library/documentation/uikit/reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instp/UIView/opaque)

Et vous pouvez définir une couleur claire comme arrière-plan aussi ([UIColor clearColor]).

+0

Cela montre que les vues sous-jacentes. Le problème persiste puisque la vue entière est toujours redessinée. – Accatyyc