我想提供一个只占据屏幕下半部分的视图,背景视图仍然可见,没有可能的交互。
就像UIAlertContoller
风格的actionSheet
一样。
如何在Swift中做到这一点?
答案 0 :(得分: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
中,视图还没有真正正确的帧,并且最终会处于错误的位置