J'ai sous-classe UIView - en fait une pièce de puzzle - avec 2 CGLayer différent initialisé à initWithFrame.Définir "opacité" d'un CGLayer avant le tirage?
En drawRect je dois mélange cette couche deux, et le plus haut devrait avoir variable alpha selon le jeu logique.
Quelle est la meilleure façon de procéder pour optimiser les performances? Existe-t-il une fonction CGLayer ou CGContext qui définit un alpha avant le dessin?
Vous voulez dire que je devrais créer un indépendant, par exemple. - (void) renderView méthode, et mettre en œuvre des dessins de couche là-bas? Ensuite, [puzzlePiece setNeedDisplay] pourrait être remplacé par un [puzzlePiece renderView] simple? – Geri
Cela semble à peu près juste, si vous avez besoin de rendre toutes les pièces de la vue à chaque fois. Sinon, je ne ferais que ré-afficher les couches dont vous avez besoin lorsque votre classe de modèle (données) change. Il n'y a aucune raison de redessiner une couche juste parce que d'autres couches doivent être redessinées. –
'Cours. Les pièces de puzzle sont en fait attribuées/addSubview-ed instances d'une classe PuzzlePiece: UIView, donc seule la pièce récemment manipulée par l'utilisateur reçoit le message redraw (renderView ci-dessus "signifie" renderPuzzleView). – Geri