从底部滑入 UIView

Sliding-In UIView From Bottom

我正在尝试构建一个自定义外观的操作 sheet。我认为最简单的方法是创建一个视图作为子视图,并将子视图顶部的约束分配给父视图的底部。同时为封面视图分配一些不透明度。因此,我可以有不同版本的子视图,我可以初始化必要的并滑动它。

我找不到对 Swift 有用的东西,因此,我尝试使用 this obj-c answer 将其转换为 Swift。我用这个实现了不透明的背景,但是翻译约束似乎不起作用。

 var coverView = UIView()

override func viewDidLoad() {
    super.viewDidLoad()

    coverView.backgroundColor = UIColor(white: 0.0, alpha: 0.4)
    coverView.alpha = 1.0
    self.view.addSubview(coverView)
    self.view.bringSubviewToFront(coverView)
} 

//doesn't work
 self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[coverView]|", options: kNilOptions, metrics: nil, views: NSDictionaryOfVariableBindings(coverView)))
 self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[coverView]|", options: kNilOptions, metrics: nil, views: NSDictionaryOfVariableBindings(coverView)))

我对实例化视图和应用过渡动画感到困惑。如果我选择在 ViewController 下创建一个 UI 视图,我无法调整约束以将子视图的 equal width 调整为父视图。

如何使用我创建的 UI 视图作为子视图(在 Storyboard 中),然后调整其宽度限制以使 UI 不会出错?另外,如何应用过渡动画使其看起来自然?

我建议您使用 UIView xib 文件并设计您的视图,然后加载到您的视图控制器中。

例如:

第 1 步:

创建 xib 以供查看

第 2 步: 为此视图设置背景颜色黑色,不透明度 62% 和 Alpha = 1

第 3 步: 采用新的简单 UIView 并设计您的实际视图并设置约束。

对于 Exp:

在您的案例中,将视图设置在底部。 第 4 步: 在视图控制器中加载 xib。

class calendarViewController: UIViewController
{
    var popUpView: popUpView!
    override func viewDidLoad() {
       super.viewDidLoad()
       bookingConfirmView = NSBundle.mainBundle().loadNibNamed("popUpView", owner: self, options: nil).first as! popUpView
    // Set Delegate for xib textField
    self.popUpView.Name.delegate = self
    self.popUpView.MobileNo.delegate = self
    }
}

第 5 步:

将此行添加到您要填充视图的位置。

self.view.addSubview(bookingConfirmView)
self.bookingConfirmView.frame = self.view.bounds