在我的代码的某些部分,我正在使用此行
[[self navigationController] pushViewController:myController animated:YES];
这非常有效,可以从底部推出一个视图,覆盖当前视图,完全覆盖最后一个视图。
我想知道是否有办法让它只覆盖屏幕的一部分。比方说,只是屏幕的半个底部......
有可能吗?我试图更改控制器的视图框,但大小仍然全屏显示。
感谢。
答案 0 :(得分:9)
您可以使用相同的视图控制器向现有视图添加新的子视图,而不是以模态方式使用新的视图控制器。
您可以使用以下内容执行“幻灯片放映”动画:
[self.view addSubview: newView];
CGRect endFrame = newView.frame; // destination for "slide in" animation
CGRect startFrame = endFrame; // offscreen source
// new view starts off bottom of screen
startFrame.origin.y += self.view.frame.size.height;
self.newImageView.frame = startFrame;
// start the slide up animation
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.3];
newView.frame = endFrame; // slide in
[UIView commitAnimations];
答案 1 :(得分:1)
您可以使用模态视图控制器以有限的方式完成此操作。查看Apple docs中UIModalPresentationStyle下的演示文稿选项。
您需要在iOS 3.2或更高版本上执行模态视图控制器。