如何创建页面卷曲动画?

时间:2010-12-09 18:05:33

标签: iphone objective-c animation uiview

任何方式来模仿这样的东西?是不是有用于做“半页卷曲”之类的东西的API?

alt text

3 个答案:

答案 0 :(得分:12)

controller.modalTransitionStyle = UIModalTransitionStylePartialCurl;
[self presentModalViewController:controller animated:YES];

UIModalTransitionStyle 在模式下呈现视图控制器时可用的过渡样式。以下是四种不同的过渡方式。 “UIModalTransitionStylePartialCurl”是你所追求的。

typedef enum {
    UIModalTransitionStyleCoverVertical,
    UIModalTransitionStyleFlipHorizontal,
    UIModalTransitionStyleCrossDissolve,
    UIModalTransitionStylePartialCurl,
} UIModalTransitionStyle;

Apple文档:http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html

希望这有帮助!

答案 1 :(得分:1)

尝试以下方法。在这种情况下,Settings是一个在页面卷曲后面显示的sublcass UIViewController。 self也是一个正在显示的UIViewController,它的视图将保持在最顶层。

-(void)presentSettings{
    Settings *eset = [[Settings alloc] init];
    //eset.modalPresentationStyle = UIModalPresentationFullScreen;
    eset.modalTransitionStyle = UIModalTransitionStylePartialCurl;
    [self presentModalViewController:eset animated:YES];
}

请注意,Curl仅适用于iOS 3.2及更高版本。

答案 2 :(得分:0)

我认为这可能是您正在寻找的内容:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
[UIView commitAnimations];