UIViewAnimationOptionTransitionCurlUp

en utilisant la méthode de class UIView suivante sur iPad pour animer l'échange de différentes images à l'intérieur d'un UIImageView:

[UIView transitionWithView:self.view duration:1.0 options:UIViewAnimationOptionTransitionCurlUp animations:^{[imageView setImage:foregroundImage];} completion:nil]; 

Cependant, l'animation ne semble pas prendre en count l'orientation de l'interface actuelle. En d'autres termes, "en haut" est toujours en hausse par rapport à l'orientation Portrait . Ainsi, par exemple, si l'appareil est en orientation Paysage Gauche, la page se courbe de gauche à droite (plutôt que "en haut"). Si je suis à l'envers, la page se courbe de haut en bas, etc.

Une idée de comment je peux l'get "enrouler" par rapport à l'orientation de l'interface actuelle plutôt que de se recroqueviller par rapport à l'orientation Portrait?

J'ai rencontré le même problème. J'ai trouvé une solution de contournement mais je ne sais pas pourquoi votre code (la même approche que j'ai prise) n'a pas fonctionné.

Mon walk-around est de créer un wrapper (UIView) pour tous les éléments de l'interface user dans la page à purler. J'ai fait de l'encapsuleur la seule sous-vue de la vue du controller de vue et de toutes les autres sous-vues de l'encapsuleur. Et modifiez la cible à wrapper comme ci-dessous

 [UIView transitionWithView:self.wrapperView duration:1.0 options:UIViewAnimationOptionTransitionCurlUp animations:^{[imageView setImage:foregroundImage];} completion:nil]; 

Dans votre cas spécifique, si vous avez uniquement besoin de 'imageView' pour être recroquevillé, vous pouvez essayer de définir la cible sur imageView, à savoir

 [UIView transitionWithView:self.imageView duration:1.0 options:UIViewAnimationOptionTransitionCurlUp animations:^{[imageView setImage:foregroundImage];} completion:nil]; 

ça a marché dans mon projet. Donc, il semble que si la cible d'animation est la vue racine de VC, ce problème se produira, sinon l'animation de curling fonctionne. Quelqu'un sait pourquoi?