2
我想提出只占据屏幕下半部分的视图,背景视图保持可见并且没有可能的交互。如何呈现一个像actionSheet一样的UIViewController?
就像UIAlertContoller
与actionSheet
样式。
如何在Swift中做到这一点?
我想提出只占据屏幕下半部分的视图,背景视图保持可见并且没有可能的交互。如何呈现一个像actionSheet一样的UIViewController?
就像UIAlertContoller
与actionSheet
样式。
如何在Swift中做到这一点?
创建视图作为一个正常的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
的意见真的没有正确的框架还没有,它会在错误的位置结束了
你可以实例化并将newViewController的视图作为子视图添加到currentViewController中,并使用frame.origin.y =屏幕大小,然后为上升移动动画 –
这不是快捷方式,但可以尝试从此调整动画http://stackoverflow.com/ a/17792844/2535467,以便从下向上动画,而不是从右向左。 – CaptJak