每当我按下添加按钮时,我都希望下拉视图从黑色视图下方滑动,而不是在顶部显示然后向下滑动。
我以前在情节提要中使用黑色视图,但它一直停留在下拉视图的前面,从而产生了从黑色视图下方滑动的效果。现在,我在情节提要中删除了该视图,并以编程方式创建了一个新视图,然后出现了这个问题。
我尝试了常用方法BringToFront / sendToBack,但这没有帮助。
这是我的代码
override func viewDidLoad() {
super.viewDidLoad()
blackView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 500, height: 100))
blackView.backgroundColor = UIColor.black
self.view.addSubview(blackView)
self.view.bringSubviewToFront(blackView)
blackView.layer.zPosition = .greatestFiniteMagnitude
self.view.sendSubviewToBack(dropDownView)
dropDownView.isHidden = true
addButton.setImage(#imageLiteral(resourceName: "addBa"), for: .normal)
addButton.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
self.blackView.addSubview(addButton)
}
@objc func buttonAction() {
if (dropDownView.isHidden == true ) {
openDropDownView()
}
else { closeDropDownViewA() }
}
func openDropDownView() {
self.dropDownView.isHidden = false
UIView.animate(withDuration: 0.3, delay: 0, options: .curveEaseOut, animations: {
var fabricTopFrame = self.dropDownView.frame
fabricTopFrame.origin.y -= fabricTopFrame.size.height
var fabricBottomFrame = self.dropDownView.frame
fabricBottomFrame.origin.y += fabricBottomFrame.size.height
self.dropDownView.frame = fabricTopFrame
self.dropDownView.frame = fabricBottomFrame
UIView.animate(withDuration: 0.5) {
self.dimView.alpha = 0.75
}
}, completion: { finished in
print("dropDownView opened!")
})
}
谢谢!
答案 0 :(得分:0)
解决了。我加了
let currentWindowB: UIWindow? = UIApplication.shared.keyWindow
currentWindow?.addSubview(blackView)
到
@objc
func buttonAction() {
if dropDownView.isHidden {
openDropDownView()
} else {
closeDropDownViewA()
}
}