好的,所以我非常喜欢pagecurl效果,只有一个问题,当从应用程序内发送反馈电子邮件时,partialPageCurl会覆盖取消按钮和邮件的大部分发送按钮。按钮仍然有效,但用户不会看到它们。有没有办法让partialPageCurl到fullPageCurl,它几乎完全关闭屏幕?提前致谢!目前我正在推动观点。
- (IBAction)HelpClicked{
MoreHelp *More = [[MoreHelp alloc] initWithNibName:nil bundle:nil];
More.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:More animated:YES];
[More release];
}
答案 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。这样就不会在屏幕上看到视图,但页面卷曲过渡将被迫从屏幕上剥离以“显示”左上角的视角。