6

好的,所以我真的很喜欢 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

4 回答 4

4

查看苹果开发者库中的 UICatalog 代码。这是链接:http: //developer.apple.com/library/ios/#samplecode/UICatalog/Introduction/Intro.html

当你运行它时,从 UITableView 中选择转换。请参阅“卷曲图像”按钮的操作。如果这就是您所需要的...

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

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

于 2011-07-20T07:54:25.830 回答
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];
                }];
于 2011-07-19T15:21:24.920 回答
1

PeyloW 和 xs2bush 的出色建议肯定会给您整页卷曲。不过,我怀疑您的卷曲程度超过了部分卷曲。我不认为有一个 API 可以解决这个问题,但是一个可能有效的技巧怎么样?

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

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

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

希望这会给你带来想要的效果。

于 2011-07-20T11:59:43.847 回答
1

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

于 2011-07-24T09:26:09.980 回答