UIViewAnimationTransitionCurlUp从右到左的横向(左右)方向

时间:2011-11-01 06:07:26

标签: iphone animation uiview orientation landscape

我正在尝试使用UIViewAnimationTransitionCurlUp在两个视图之间进行转换。 我的应用程序在横向(左和右)中工作,我需要从右到左过渡。 UIViewAnimationTransitionCurlUp从下到上工作(而不是我想要的从右到左)。 我的第一个版本是:

self.oneView = [[[UIImageView alloc] initWithFrame:frame] autorelease];
self.twoView = [[[UIImageView alloc] initWithFrame:frame] autorelease];
[self.view addSubview:self.oneView];

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
[self.oneView removeFromSuperview];
[self.view addSubview:twoView];
[UIView commitAnimations];

它在风景中使用右侧的主页按钮(从右到左的过渡根据需要从右上角开始)。 但是当设备被旋转到左侧的主页按钮时,卷曲效果是颠倒的:从左到右开始用左下角。) 似乎动画不知道设备方向。 我更改了一个代码,以便使用中间容器视图(在self.view和

之间)
self.oneView/twoView):
self.containerView = [[[UIView alloc] initWithFrame:frame] autorelease];
self.oneView = [[[UIImageView alloc] initWithFrame:frame] autorelease];

self.twoView = [[[UIImageView alloc] initWithFrame:frame] autorelease];
[self.view addSubview:self.containerView];
[self.containerView addSubview:self.oneView]

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.containerView cache:YES];
[self.oneView removeFromSuperview];
[self.containerView addSubview:twoView];
[UIView commitAnimations];

现在它意识到设备旋转并且正好适用于横向方向。 但它在文档中描述的从下到上(从右下角开始)起作用。 但我希望它从右到左工作。 我还尝试使用视图的转换属性,如:

self.containerView.transform = CGAffineTransformMakeRotation(-M_PI_2);
self.oneView.transform = CGAffineTransformMakeRotation(M_PI_2);

没有帮助。 所以,一个问题是: 如何在横向模式(左侧和右侧)中使用转换UIViewAnimationTransitionCurlUp来从右到左进行视图之间的转换? 谢谢你的帮助! 亚历

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用UIViewAnimationTransitionCurlDown?它是UIViewAnimationTransitionCurlUp的反方向。