我在ViewController中有一个函数,当按下按钮时会加载一个Xib文件,我将这个Xib显示为“弹出窗口”,并在背景中添加一个灰色,如下所示:
var grayBackgroundView = UIView()
var popupView:PopupView?
func showPopupView(){
self.showGrayBGView(self, grayView: grayBackgroundView)
popupView = NSBundle.mainBundle().loadNibNamed("PopupView", owner: self, options: nil)[0] as? PopupView
self.view.addSubview(popupView!)
popupView?.center = self.view.center
popupView?.alpha = 0.5
popupView?.clipsToBounds = false
UIView.animateWithDuration(1.0, delay: 0.0, usingSpringWithDamping: 0.3, initialSpringVelocity: 0.50, options: UIViewAnimationOptions.LayoutSubviews, animations: { () -> Void in
self.popupView?.alpha = 1
self.view.layoutIfNeeded()
}) { (value:Bool) -> Void in
}
}
在这个Xib中,我创建了一个调用hidePopUpView()函数的按钮,该函数从视图中删除了这个Xib:
func hidePopupView(){
UIView.animateWithDuration(0.5, delay: 0, usingSpringWithDamping: 0.3, initialSpringVelocity: 0.50, options: UIViewAnimationOptions.CurveEaseOut, animations: { () -> Void in
self.grayBackgroundView.alpha = 0
self.popupView!.alpha = 0
}) { (value:Bool) -> Void in
self.popupView!.removeFromSuperview()
self.grayBackgroundView.removeFromSuperview()
}
}
我的问题是:有没有办法只有当我触摸灰色背景并调用hidePopupView()才能删除此Xib?
我还有另一个问题。您是否认为有一种更好的方式来显示一个弹出式窗口,考虑到我需要添加一些输入字段并使用它们?