我通过以下方式显示UIViewController:
MyViewController *myVc = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[myVc setModalTransitionStyle:UIModalTransitionStylePartialCurl];
[self presentModalViewController:myVc animated:YES];
如果我正在绘制MyViewController
的视图,那么过渡只影响半页(我想要的)。
在我的情况下,我正在绘制整个MyViewController
的视图,以便过渡在整个视图中生效
如果我只画了半个视图,那么转换会对屏幕的一半产生影响,但我仍然会显示“死区”并且不会被绘制。
我的问题是转换如何仅影响屏幕的一半(如图所示),但我仍然能够绘制整个视图,所以即使转换只显示屏幕的一半,所有显示的区域将被绘制
答案 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];