J'utilise un CALayer
pour afficher un chemin via la méthode de délégation drawLayer:inContext
, qui réside dans le contrôleur de vue de la vue à laquelle appartient le calque. Chaque fois que l'utilisateur déplace son doigt sur l'écran, le chemin est mis à jour et la couche est redessinée. Cependant, le dessin ne suit pas les touches: il y a toujours un léger décalage dans l'affichage des deux derniers points du chemin. Il scintille également, mais seulement en affichant à nouveau les deux derniers points. Si je fais juste le dessin dans le drawRect
de la vue, cela fonctionne très bien et le dessin est définitivement assez rapide.CALayer scintille lors du tracé d'un tracé
Est-ce que quelqu'un sait pourquoi il se comporte comme ça? Je suppose que c'est quelque chose à voir avec la mise en mémoire tampon des calques, mais je n'ai trouvé aucune documentation à ce sujet.
OS X, à droite? Il est possible que vous utilisiez des animations de propriétés implicites qui sont activées par défaut dans OS X. Vous pouvez essayer '[CATransaction begin]; [CATransaction setValue: @YES forKey: kCATransactionDisableActions]; ... dessiner ...; [CATransaction commit]; ' – nielsbot