2015-09-06 54 views
2

我想提出只占据屏幕下半部分的视图,背景视图保持可见并且没有可能的交互。如何呈现一个像actionSheet一样的UIViewController?

就像UIAlertContolleractionSheet样式。

如何在Swift中做到这一点?

+0

你可以实例化并将newViewController的视图作为子视图添加到currentViewController中,并使用frame.origin.y =屏幕大小,然后为上升移动动画 –

+0

这不是快捷方式,但可以尝试从此调整动画http://stackoverflow.com/ a/17792844/2535467,以便从下向上动画,而不是从右向左。 – CaptJak

回答

1

创建视图作为一个正常的UIViewController,一个标识符分配给它,然后实例化它是这样的:(把它作为一个成员变量,虽然,你会需要它)

var controller = self.storyboard!.instantiateViewControllerWithIdentifier("yourIdentifier") as! UIViewController 

,那么你可以将其添加像

你父视图
self.addSubview(controller) 

要小心,虽然它定位,你可以巧妙地制作动画在屏幕的中间像

UIView.animateWithDuration(0.5, animations: { 
    controller.frame.origin.y = UIScreen.mainScreen().bounds.height/2 
}) 
in 

不过,在最初的定位应保持视图的viewDidLayoutSubviews方法,像

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 
    controller.frame.origin.y = UIScreen.mainScreen().bounds.height 
} 

因为viewDidLoad的意见真的没有正确的框架还没有,它会在错误的位置结束了

相关问题