有完整的页面卷曲吗?更新

时间:2011-07-08 04:32:41

标签: ios iphone uiviewanimationtransition page-curl

好的,所以我非常喜欢pagecurl效果,只有一个问题,当从应用程序内发送反馈电子邮件时,partialPageCurl会覆盖取消按钮和邮件的大部分发送按钮。按钮仍然有效,但用户不会看到它们。有没有办法让partialPageCurl到fullPageCurl,它几乎完全关闭屏幕?提前致谢!目前我正在推动观点。

- (IBAction)HelpClicked{

MoreHelp *More = [[MoreHelp alloc] initWithNibName:nil bundle:nil];

More.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:More animated:YES];

[More release]; 
}

4 个答案:

答案 0 :(得分:4)

查看Apple开发人员库中的UICatalog代码。链接在这里: http://developer.apple.com/library/ios/#samplecode/UICatalog/Introduction/Intro.html

当你运行它时,从UITableView中选择Transitions。看看' Curl Image"按钮。如果这就是你需要的......

你会在TransitionViewController类中找到curlAction:方法。基本上它在视图中有两个imageview。根据显示的是哪一个以及前一个过渡(向上卷曲或向下卷曲),它会以一种看起来像卷曲页面然后卷曲它的方式显示另一个图像。卷曲图像视图完全消失。我相信你可以根据你的用户界面进行调整。

它与PeyloW的答案几乎相同,只是它使用旧的setAnimation:commitAnimation对。

答案 1 :(得分:3)

UIModalTransitionStyle没有完整页面卷曲变体。

如果这是您所需要的,那么您必须自己手动实施。做一个简单的模态视图控制器但是可行的更复杂。

此代码剪辑仅适用于默认的纵向布局,需要根据您的需要进行调整。但是我希望它能让你知道你需要做什么:

UIView* view = viewController.view;
view.frame = self.view.window.bounds;
[UIView transitionWithView:self.view.window
                  duration:0.2 
                   options:UIViewAnimationOptionTransitionCurlUp 
                animations:^(void) {
                    [self.view.window addSubview:view];
                } 
                completion:^(BOOL finished) {
                    [viewController.view removeFromSuperview];
                    [viewController presentModalViewController:viewController
                                                      animated:NO];
                }];

答案 2 :(得分:1)

PeyloW和xs2bush的优秀建议肯定会给你一整页卷曲。我怀疑你是在追求一个超过部分而不是完整的页面卷曲。我不认为这有一个API,但是一个可能起作用的技巧呢?

使用PeyloW或xs2bush的方法,但也启动一个持续时间略小于UIViewAnimationOptionTransitionCurlUp动画持续时间的计时器。

当计时器到期时,冻结动画并将其从卷曲的UIView中移除:

curledView.frame = [[curledView.layer presentationLayer] frame];
[curledView.layer removeAllAnimations];

希望这能为您带来理想的效果。

答案 3 :(得分:1)

我会使用PeyloW的答案,但还有另外一种方法。将UIView添加到您要呈现的模态视图(在viewDidLoad中),并将其放在左上角,并为其提供[UIColor clearColor]的backgroundColor。这样就不会在屏幕上看到视图,但页面卷曲过渡将被迫从屏幕上剥离以“显示”左上角的视角。