如何创建一个页面翻页动画?

6
有没有办法模拟类似这样的效果?难道没有可以做半页翻动之类的API吗?
3个回答

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

UIModalTransitionStyle是在以模态方式呈现视图控制器时可用的转换样式。以下是四种不同的转换样式。你需要的是"UIModalTransitionStylePartialCurl"

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

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

希望这能帮到你!


1
尝试以下步骤。在这种情况下,Settings是一个子类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及更高版本。

modalPresentationStyle 是做什么用的? - sudo rm -rf
1
UIModalTransitionStylePartialCurl需要全屏显示才能工作,而UIModalPresentationFullScreen确保模态呈现是全屏的。我相信UIModalPresentationFullScreen是默认值,因此您可以忽略该行。 - fsaint

0

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

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

我实际上正在寻找一个半页翻页效果,其中顶部视图不会消失,而是保持可见。 - sudo rm -rf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接