UIModalTransitionStyle Partial Curl half page

时间:2011-08-08 13:52:36

标签: iphone objective-c uiview transition viewcontroller

我通过以下方式显示UIViewController:


MyViewController *myVc = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[myVc setModalTransitionStyle:UIModalTransitionStylePartialCurl];
[self presentModalViewController:myVc animated:YES];

如果我正在绘制MyViewController的视图,那么过渡只影响半页(我想要的)。

在我的情况下,我正在绘制整个MyViewController的视图,以便过渡在整个视图中生效

如果我只画了半个视图,那么转换会对屏幕的一半产生影响,但我仍然会显示“死区”并且不会被绘制。

enter image description here

我的问题是转换如何仅影响屏幕的一半(如图所示),但我仍然能够绘制整个视图,所以即使转换只显示屏幕的一半,所有显示的区域将被绘制

4 个答案:

答案 0 :(得分:4)

iOS仅使用UIView的第一级子级来决定部分页面卷曲的位置。这允许您添加具有例如帧的第二级子视图。 (0,-50,320,100)滑入你称之为“死区”的区域。

答案 1 :(得分:1)

我相信这里和相关主题中的海报有问题,因为他们试图使用另一个视图(例如图像视图)来装饰底层视图的背景。设置背景的正确方法 - 不会影响页面卷曲,实际上是设置背景。

- (void)viewDidLoad {
    [super viewDidLoad];

    //BG
    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"StitchTileBG.png"]];
}

保留使用视图等实际用户界面元素

答案 2 :(得分:0)

这里有什么问题?以使用可见区域的方式填充modalView中的内容。如果我没有错,modalPageCurl效果没有选项来设置卷曲的程度(或它应该占用多少屏幕)。

所以我建议你跳过这种方法&专注于试图覆盖(或利用)尽可能多的屏幕......

答案 3 :(得分:-2)

MyViewController * myVc = [[MyViewController alloc] initWithNibName:nil bundle:nil];
[UIView beginAnimations:@"flipPage" context:NULL];
[UIView setAnimationDuration:2];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
[self.view addSubview:myVc.view];
[UIView commitAnimations];