繁体   English   中英

如何像 actionSheet 一样呈现 UIViewController?

[英]How to present an UIViewController like an actionSheet?

我想展示一个只占据屏幕下半部分的视图,背景视图保持可见,没有可能的交互。

就像一个UIAlertContolleractionSheet风格。

如何在 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 ,视图还没有真正正确的帧,它最终会处于错误的位置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM