我正在尝试构建一个自定义的操作表。我认为最简单的方法是将视图创建为子视图,并将子视图顶部的约束分配给superview的底部。并同时指定具有一些不透明度的封面视图。因此,我可以有不同版本的子视图,我可以初始化必要的子视图并将其滑动。
我找不到任何对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。
如何使用我创建的UIView作为Subview(在Storyboard中),然后调整其宽度约束,以便UI不会出错?另外,我如何应用过渡动画,这似乎很自然?
答案 0 :(得分:3)
我建议您使用UIView xib文件并设计视图,然后在视图控制器中加载。
例如:
第1步:
第2步: 为此视图设置背景颜色为黑色,不透明度为62%,Alpha = 1
第3步: 采用新的简单UIView并设计您的实际视图并设置约束。
在你的案例中,在底部设置视图。 第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