J'essaie de déplacer un code de dessin personnalisé d'une vue dans un CAShapeLayer
, qui est ensuite ajouté en tant que sous-calque au CALayer
de la vue d'origine. Cela fonctionne également bien, mais lors de la rotation de l'appareil, l'animation commence à bégayer, par ex. vous voyez juste le cadre dans l'orientation originale et ensuite l'orientation finale, avec au plus une image entre - pas lisse du tout. Les animations de slide-in et de slide-out du UIViewController
correspondant sont aussi un peu saccadées (mais pas tellement).CAShapeLayer ralentissant la rotation de l'interface
Tous les CAShapeLayer
a dans son path
est un CGPathAddRect
, il est défini comme opaque
, son opacity
est 1.0f
et le fillColor
est réglé sur bleu opaque.
Lorsque vous tracez le chemin directement dans la vue drawRect
méthode, cependant, l'animation est lisse. Donc, je suppose que cela a quelque chose à voir avec le CAShapeLayer
étant animé pendant la rotation.
Pourriez-vous me dire comment soit se débarrasser de ces saccades ou simplement masquer le CAShapeLayer
lors de l'animation? Revenir à simplement dessiner CGPath
s n'est pas une option pour moi car je compte sur la capacité de CAShapeLayer
pour animer son chemin (il n'est pas animé dans mes essais avec la rotation de la vue).
/mise à jour: il se produit également lorsque l'avis de la UIViewController
rotatif contient une vue d'une sous-classe de CAGradientLayer
comme layerClass
(par exemple, une vue d'une couche de gradient comme arrière-plan).
Vive
MrMage
J'ai essayé cette. Ça ne marche pas. Il ne permet même pas de supprimer complètement la '' CAShapeLayer' dans - (void) willAnimateRotationToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation \t \t \t \t \t \t \t \t \t \t Durée: (NSTimeInterval) duration' puis ajoutez-le dans ' - (void) didRotateFromInterfaceOrientation: (UIInterfaceOrientation) fromInterfaceOrientation'. – MrMage
Eh bien, vous pourriez le delloc et l'allouer et aussi l'enregistrer? essayez cela peut-être. BTW me donne un peu de marge je ne suis pas le plus grand esprit de l'iPhone, ou même à ce codage. il suffit de regarder mon profil et de voir les questions. J'ai vraiment très peu d'arrière-plan derrière moi. Je n'ai que 17 ans. Désolé pour le manque d'aide de ma part – Jaba
Etes-vous vraiment sûr que la couche est même le problème? – Jaba