这是我的代码,它放在viewDidLoad()中,它是用于视图的设置,当我单击添加按钮时,该视图会弹出(移至屏幕中间)。
self.view.bringSubviewToFront(addEntryView)
addEntryView.layer.cornerRadius = 20
addEntryView.dropShadow()
self.addEntryView.layer.borderWidth = 5
self.addEntryView.layer.borderColor = UIColor(red:0.31, green:0.72, blue:0.95, alpha:1.0).cgColor
addEntryView.backgroundColor = UIColor.white
addEntryView.frame = CGRect(x: 0, y: 0, width: 370, height: 695)
view.addSubview(addEntryView)
但是它在我的导航栏和标签栏的后面。我确实找到了这行代码,使其位于两者之上,然后当我切换选项卡时,视图仍位于屏幕顶部。
UIApplication.shared.keyWindow?.addSubview(addEntryView)
在导航栏和选项卡栏上获得视图的任何帮助,但仅适用于该选项卡,因此当我切换选项卡时,它消失了吗?
谢谢
答案 0 :(得分:0)
“为什么在切换选项卡时视图仍停留在顶部”的原因是:您试图将addSubview
切换到keyWindow
,而不是在任何view
上特定的viewController
,因此它将应用于所有viewController的顶部。
在切换superView
中的标签或在要切换标签时调用的任何其他功能之前,您需要从viewWillDisapper
中删除此标签。
或者,您可以将此弹出式视图作为modalPresentationStyle
等于UIModalPresentationStyle.CurrentContext
的单独viewController并通过当前视图控制器呈现。
答案 1 :(得分:0)
利用以下代码在所有内容之上加载视图
var transperantView = UIView()
if let appDelegate = UIApplication.shared.delegate as? AppDelegate,
let window = appDelegate.window {
transperantView.frame = CGRect(x: 0, y: 0, width: window.bounds.width, height: window.bounds.height)
transperantView.backgroundColor = UIColor(red:0.09, green:0.157, blue:0.2, alpha:0.75)
window.addSubview(transperantView)
}