J'ai été aux prises avec un problème apparemment mineur dans la façon dont ma sous-classe UIView s'anime. J'ai vue mettre en place comme ceci:UIView Redimensionner Animation Glitches
self.contentMode = UIViewContentModeRedraw;
self.contentStretch = CGRectMake(0.5f, 0.5f, 0.0f, 0.0f);
La vue est essentiellement un rectangle qui a un coup de 3 pixels. Parce que je veux que la vue ne se déforme pas pendant le redimensionnement, j'ai la propriété contentStretch indiquant le milieu de la vue. Le problème est, la distorsion se produit pendant qu'elle se développe, mais elle est lisse en rétrécissant.
On dirait que mon bloc d'animation est assez simple; J'ai des séparés pour grandir et rétrécir. Voici le bloc de plus en plus:
[UIView animateWithDuration:0.5 animations:^{
CGRect newRect = CGRectMake(20, 100, 200, 70);
[titleView setFrame:newRect];
}];
C'est assez difficile à décrire dans un poste, donc j'assemblé un projet de test qui isole uniquement les parties qui sont pertinentes à ce sujet. Si quelqu'un veut jeter un coup d'oeil?
http://dl.dropbox.com/u/2798577/ViewResizeTest2.0.zip
Vous pouvez voir lorsque vous appuyez sur le « grandir » bouton, côté gauche « problème technique » de la vue avant d'animer. Bien que clairement visible ici, c'est un peu pire dans mon vrai projet.
Je ne sais pas si c'est un bug dans mon code ou un problème avec le framework? En espérant que c'est l'ancien ...
Merci, Aaron.
Mise à jour Après avoir reçu généreux commentaires de Jacob, je suis retourné à mon application et à supprimer les réglages de contentMode comme UIViewContentModeRedraw, notant comme il le fait qu'il fonctionnera drawRect chaque fois qu'il anime, et peut-être que trame initiale est une partie du problème. Alors maintenant l'animation est lisse, mais elle s'anime à la mauvaise position, écrasant les côtés. J'ai mis à jour le projet lié à quelque chose qui reflète plus précisément ce qui se passe dans mon application.
Si je devais deviner, il semblerait que la propriété contentStretch ne fasse pas son travail. C'est redimensionner le tout et pas une région CGRect à l'intérieur selon mes instructions. Quelqu'un peut-il confirmer si je l'utilise correctement?
Merci pour ce Jacob. Je pense que vous avez résolu une partie du problème. Il semble toutefois avoir révélé une faiblesse dans mon application exemple. J'ai mis à jour l'application et j'ajouterai une note à ce sujet dans ma question. –