Luttant pour effacer toutes les données d'un CGLayer - peut-il être fait même?

StackOverflow https://stackoverflow.com/questions/4594330

  •  15-10-2019
  •  | 
  •  

Question

Nous faisons répétitivement un CGLayer, faire du traitement, puis le relâcher. Cela se produit beaucoup en temps réel. Certes, il y a beaucoup de frais généraux pour faire une nouvelle CGLayer tout à chaque fois. Alors ...

Certes, il serait préférable de simplement maintenir la couche autour, et d'effacer toutes les données de chaque fois -. Plutôt que de créer une nouvelle à partir de zéro

. Remarque: si vous peignez dans un blanc ou d'un rectangle clair couvrant tout, qui ajoute simplement encore plus de données sur le dessus de vos chemins existants

Alors, comment fait "effacement" ou "recommencer" CGLayer?

Il y a une fonction CGContextBeginPath (cc), mais il est déroutant: il semble n'effacer « que » chemin, il ne semble pas effacer tout le dos CGLayer à l'état pas de données .

Comment retourner un CGLayer à un état de non-données? Quelqu'un sait-il?

Mise à jour ...

Il se trouve qu'il est en fait aucun moyen de le faire.

Après une expérimentation considérable, nous avons déterminé qu'il semble y avoir aucun moyen d'effacer toutes les données d'un CGLayer (ce qui est décevant vraiment).

Notez que l'ajout d'un nouveau rectangle blanc ou clair, seulement que -. Il ajoute en fait plus de données

chemin Donc, malheureusement pas connu pour ce faire. Si vous construisez ces à haute hz (peut-être pour un calcul), il vous suffit de commencer par une fraîche chaque fois. Ou bien, vous pouvez apparemment supprimer (supprimer en fait, non seulement la couverture) juste une chemin à l'aide CGContextBeginPath ().

Espérons que ce quelqu'un d'aide à l'avenir.

Était-ce utile?

La solution

Une fois que vous devez effacer le contenu de l'appel contexte CGContextClearRect (cc, someRect).

Autres conseils

Pourquoi vous remplissez tout simplement pas avec un rectangle de (clair / blanc) couleur? Assurez-vous que la couche n'est pas opaque si vous voulez clairement avec clearColor (transparent).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top