Comment déclencher Core Animation sur un proxy d'animation lors d'un appel à resizeSubviewsWithOldSize?

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

  •  02-07-2019
  •  | 
  •  

Question

J'ai quelques vues NSViews que je mets dans l'une des deux dispositions en fonction de la taille de ma fenêtre.

Je modifie la présentation lorsque le superview pertinent reçoit la méthode resizeSubviewsWithOldSize.

Cela fonctionne, mais j'aimerais animer le changement. Alors naturellement, j'ai essayé d'appeler le proxy de l'animateur lors de la définition des nouvelles images, mais l'animation ne s'exécutera pas tant que l'utilisateur sera en train de faire glisser. Si je relâche la souris avant la planification de l'animation, je peux voir la fin de celle-ci, mais rien jusque-là. J'ai essayé de m'assurer que kCATransactionDisableActions était réglé sur NO, mais cela n'a pas aidé.

Est-il possible de démarrer une nouvelle animation et de la faire exécuter pendant le redimensionnement?

Était-ce utile?

La solution

Je ne pense pas que vous puissiez le faire facilement, car les animations de CA sont exécutées via une minuterie et celle-ci ne se déclenche pas pendant les modes d'exécution en boucle qui sont actifs lorsque l'utilisateur fait glisser.

Si vous pouvez contrôler le runloop pendant que l'utilisateur le fait glisser, jouez avec les modes runloop. Ça va le faire fonctionner. Je ne pense pas que vous puissiez changer cela du côté des AC.

Autres conseils

Ce n’est vraiment pas une réponse, mais je vous déconseille d’animer quoi que ce soit en faisant glisser pour redimensionner une fenêtre. L'écran est déjà en train de s'animer (depuis la fenêtre en mouvement). D'autres animations risquent d'être visuellement déroutantes et superflues.

Il est préférable d’utiliser les effets CoreAnimation pour passer d’un état connu à un autre - par exemple, lorsqu’une fenêtre de préférence redimensionne pour accompagner le contenu d’un nouveau volet, et que vous connaissez à la fois l’ancienne et la nouvelle taille, ou lorsque vous fondez un objet en fondu. dedans ou dehors (ou les deux). Faire de l'animation pendant que la fenêtre est en train de redimensionner va être visuellement déroutant et rendre plus difficile pour l'utilisateur de se concentrer pour obtenir la taille de la fenêtre où elle le souhaite.

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