Dans une application montrant des morceaux de texte, la taille de la police augmente lorsque l'appareil est tourné vers une orientation paysagère. Je n'aime pas comment il fait toute l'animation et saute soudainement à la nouvelle taille, alors j'aimerais animer le changement de taille au cours de la rotation. p>
J'ai lu quelque part qui jetant cette modification dans un bloc d'animation code> UIView code> ne fonctionne pas car la propriété Police n'est pas animée, quelles sont mes options pour faire cela? P>
Pour ma mise en œuvre spécifique, je n'ai pas simplement la mise à l'échelle du EDIT: J'en voudrais une simple mise à l'échelle du En outre, j'avais envisagé de "l'animer" manuellement: j'ai une méthode qui définit mes vues et s'adapte à la taille de la police. Si je savais que la rotation était sur le point de démarrer et que la durée de l'animation, je pouvais le faire de temps afin qu'il rend une taille intermédiaire de police ou deux au milieu de l'animation. Toute aide pour obtenir ceux qui seraient appréciés. P> uilabel code> /
uitexview code> as-est; Les limites de la boîte augmentent davantage (proportionnellement) que la taille de la police, il y aura donc une réaction dans le texte. C'est bien par moi. p>
uitextview code>. p>
4 Réponses :
Modifier la taille de la police lorsque didanimatefirsthalfofrotationToinTerfaceOrientation: code> est appelé.
De cette façon, l'utilisateur ne verra pas le changement une fois la rotation terminée. Il serait assez difficile de voir la taille de la police changer alors, car la rotation se produit! P>
Cette méthode ne s'appelle pas si vous activez une animation en deux étapes, ce qui nécessite des choses manuelles supplémentaires que je veux vraiment éviter d'entrer. Mais bonne idée de toute façon!
Une option est de dédouaner l'ancien texte, changez la taille de la police et la fondue dans. La propriété Police ne peut pas être animable, mais alpha est. Puisque Alpha est une propriété d'UIView, vous pouvez traiter toutes vos vues de texte de la même manière: Uilabel, UitextView, etc. Il a l'air aussi bien. P>
Un moyen de procéder pourrait être de:
Addanimation code> à votre étiquette Object de la couche: [[Couche d'étiquette] Addanimation] code>; li>
ol> ici serait un échantillon de code en supposant YourLabel code> est le uilabel code> vous souhaitez échoué et faire pivoter: p> CAKeyframeAnimation *scale = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
CATransform3D scaleUp = CATransform3DMakeScale(1.5, 1.5, 1); // Scale in x and y
CATransform3D rotationScaled = CATransform3DRotate (scaleUp, 90, 0, 0, 1); // Rotate the scaled font
[scale setValues:[NSArray arrayWithObjects:
[NSValue valueWithCATransform3D:CATransform3DIdentity],
[NSValue valueWithCATransform3D:rotationScaled],
nil]];
// set the duration
[scale setDuration: 1.0];
// animate your label layer
[[yourLabel layer] addAnimation:scale forKey:@"scaleText"];
@kelso. Avez-vous donné cela une pensée / essayer?
Pour obtenir le droit de synchronisation et la bonne rotation, vous pouvez utiliser la méthode décrite ci-dessus: WillanimaterotationTointerFaceOrientation: Durée: Code>
@ kelso.b. Avez-vous déjà réussi à faire ce que vous vouliez réaliser? Que diriez-vous d'accepter l'une des réponses comme bonnes afin que votre question puisse être fermée? À votre santé. Du lait
Si je savais quand la rotation était à propos de commencer, et la durée de la Animation ... P> blockQuote>
drôle, vous devriez mentionner cela. Juste avant la démarrage de l'animation, votre contrôleur d'affichage recevra un
WillanimaterotationTointerFaceOrientation: Durée: code> message qui vous donne les informations exactes dont vous avez besoin. P>
Avez-vous réussi à réaliser ce que vous vouliez faire? Pourriez-vous accepter l'une des réponses pour fermer la question?