UIVIew animation - Mise à l'échelle + traduction
J'ai un point de vue qui je veux être à l'échelle et traduit vers un nouvel emplacement à l'animer. J'ai essayé de l'atteindre avec le code suivant:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:kDurationForFullScreenAnimation];
[[self animatingView] setFrame:finalRect];
[UIView commitAnimations];
L'effet de ce code est, tout d'abord la vue change son contenu est la taille de la finalRect et puis les convertit vers le nouvel emplacement. c'est à dire La mise à l'échelle de la partie n'est jamais animé. La vue est tout simplement transformés à la nouvelle taille, puis les traduire.
Cette question est déjà abordée dans plusieurs autres threads, mais aucun d'entre eux tirer une conclusion. Une solution existe cependant, pour utiliser une minuterie et réglez l'image à chaque fois dans la minuterie de rappel, mais il a un rendement inconvénient.
Quelle est la solution la plus appropriée à ce problème, aussi, pourquoi dans le premier cas, ce problème se produit-il?
Grâce
source d'informationauteur Raj Pawan Gumdal
Vous devez vous connecter pour publier un commentaire.
Le cadre n'a ni échelle ni d'une traduction. Vous êtes soit à l'aide de la mauvaise terminologie ou vous utilisez le mauvais outil pour le travail. Échelle et translation sont faites toutes les deux à l'aide de Graphiques de Base Affine transforme lorsque vous êtes à la recherche d'affecter la UIView (par opposition à la couche à utiliser de Base de l'Animation transforme).
À l'échelle d'un point de vue utilisent
À traduire, utiliser
De les animer, de les envelopper dans un bloc d'animation. Si vous voulez transformer la vue avec ces deux, alors vous avez besoin de les concaténer.
Si vous n'êtes pas désireux de l'échelle et de la traduction (transformations), puis ce que tu veux dire, c'est que vous souhaitez modifier l'affichage des limites et de la position. Ces sont modifiées avec des appels à
Où newRect et newCenter sont un CGRect et CGPointrespectivement, qui représentent la nouvelle position sur l'écran. Encore une fois, ces besoin enveloppé dans un bloc d'animation.
Voici un exemple avec le bloc de l'animation:
D'essayer cette solution :
cette opération n'est pas commutative. L'ordre est le contraire de l'ordre lors de l'utilisation de fonctions de confort pour appliquer une transformation à l'autre.
Et vous pouvez utiliser cette opération : par exemple (suppression de l'Échelle) :