2010-10-14 11 views
0

J'ai une méthode drawrect dans mon UIView principal qui dessine 8 sprites chaque tic de jeu. Je veux séparer chacun de ces sprites dans un UIView séparé. J'essaie de séparer un sprite d'abord comme un test. Jusqu'à présent, j'ai ajouté un UIView en tant que sous-vue à ma vue principale et j'ai défini son cadre. Cela dessine une boîte noire sur la vue. Ma question est comment puis-je obtenir le sprite dessin dans la méthode drawrect pour dessiner dans ce UIView?Comment intégrer le dessin Quartz 2D dans une sous-vue UIView?

Merci à tous,

Martin

Répondre

0

Chaque vue aura besoin de son propre drawRect, et quelque part, vous aurez besoin d'appeler setNeedsDisplay sur tous les (sous) voir visible. Dessinez l'image-objet dans le dessin pour la vue où vous souhaitez l'afficher. Vous pouvez avoir beaucoup de uiviews sous-classes, chacune avec leur propre drawRect, ou une instruction switch case dans un drawRect qui sélectionne ce qui doit être dessiné sur la base d'une sorte de propriété type-de-sous-vue.

Vous pouvez également définir la couleur d'arrière-plan de la vue de votre image-objet sur transparente, afin qu'elle soit invisible jusqu'à ce que vous y accédiez.

+0

Merci - mais je n'arrive pas à obtenir une sous-vue à afficher - tout ce que je reçois est une boîte noire. Ai-je besoin de définir quoi que ce soit en dehors du cadre des vues secondaires? – GuybrushThreepwood

+0

@Ohnomycoco: Pouvez-vous changer la couleur de fond de la sous-vue? Le drawRect de la sous-vue est-il réellement appelé (définir un point d'arrêt)? – hotpaw2

+0

Le dessin est appelé (vérifié via bpoint). C'est mon code pour ajouter la sous-vue: CGRect fr = CGRectMake (55.0f, 0.0f, 50.0f, 50.0f); \t \t self.view2.backgroundColor = [UIColor whiteColor]; \t \t self.view2 = [[SecondView alloc] initWithFrame: fr]; \t \t [self.view addSubview: view2]; \t \t [version2]; – GuybrushThreepwood