从底部滑入UIView

时间:2016-04-26 11:07:17

标签: ios swift uiview storyboard viewcontroller

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

enter image description here enter image description here

我找不到任何对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下创建UIView,我无法调整约束来将子视图的equal width调整为superview。

enter image description here

如何使用我创建的UIView作为Subview(在Storyboard中),然后调整其宽度约束,以便UI不会出错?另外,我如何应用过渡动画,这似乎很自然?

This link should be here...

1 个答案:

答案 0 :(得分:3)

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

例如:

第1步:

为视图创建xib enter image description here

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

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

Exp: enter image description here

在你的案例中,在底部设置视图。 第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