2010-10-12 52 views
2

在我的代码一些部分我是用这条线iphone - 不是全屏模式

[[self navigationController] pushViewController:myController animated:YES]; 

这完美的作品,并推动一个视图,从底部的到来,在当前一个,完全覆盖最后一个。

我想知道是否有办法让它只覆盖屏幕的一部分。比方说,只是屏幕的下半部分...

这可能吗?我试图改变控制器的视图框架,但大小保持全屏。

谢谢。

+0

的人谁明白德国有大约模式视图控制器:-) http://bedifferently.wordpress.com/一个伟大的教程2011/12/25/modal-view-controller-uimodalpresentationstyle/2011/12/25/modal-view-controller-uimodalpresentationstyle/ – 2011-12-25 17:20:41

回答

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

您可以使用模态视图控制器以有限的方式进行操作。查看苹果文档中UIModalPresentationStyle下的演示文稿选项。

你需要在iOS 3.2或更高版本上才能使用模态视图控制器。

+1

好的建议,但我不认为这会让你选择非全屏一个iPhone(“在iPhone和iPod touch设备上,模式视图控制器总是全屏显示,但在iPad设备上有几种不同的显示选项。”) – 2010-10-12 01:16:53

+0

在iPad上,我使用的是弹出式菜单,但对于iPhone而言,我的问题是我为...开发3.0和以上,我怀疑,正如大卫Gelhar说,我会运气不好......除非我使用常规视图动画伪造它。 – SpaceDog 2010-10-12 01:20:06