Ios 显示UIView/UIControl重叠UIToolbar
我试图在屏幕底部显示一个大按钮,以便它显示在工具栏上方 按钮重叠工具栏 我的第一次尝试是在iPad和iPhone上以横向模式工作,但按钮在纵向模式下出现在工具栏后面。因此,这可能与“拆分视图”控制器在渲染方面的差异有关:Ios 显示UIView/UIControl重叠UIToolbar,ios,swift,uinavigationcontroller,uisplitviewcontroller,uitoolbar,Ios,Swift,Uinavigationcontroller,Uisplitviewcontroller,Uitoolbar,我试图在屏幕底部显示一个大按钮,以便它显示在工具栏上方 按钮重叠工具栏 我的第一次尝试是在iPad和iPhone上以横向模式工作,但按钮在纵向模式下出现在工具栏后面。因此,这可能与“拆分视图”控制器在渲染方面的差异有关: addButton.frame = CGRect(x:0, y:0, width:48, height:48) addButton.setBackgroundImage(UIImage(named:"Button - Add"), for: .normal) let top
addButton.frame = CGRect(x:0, y:0, width:48, height:48)
addButton.setBackgroundImage(UIImage(named:"Button - Add"), for: .normal)
let topView = self.navigationController?.view
topView?.addSubview(addButton)
我不希望它出现在所有其他视图控制器之上,例如,弹出框和模式分段,因此我无法将按钮放置在应用程序最顶部的窗口上,即,以下结果也不正确:
let topView = UIApplication.shared.windows.first
topView?.addSubview(addButton)
对我来说,唯一有效的解决方案是将按钮添加到工具栏,但这并不好,因为按钮的触摸区域被工具栏剪裁:
self.navigationController?.toolbar.addSubview(addButton)
let topView: UIView? = addButton.superview
那么,是否有人知道如何将UIView或UIControl放置在工具栏上方的层或视图中,但仍在活动的viewController上?如果behind表示它被它覆盖,请尝试重新排列故事板上的两个冲突项。它们在那里列出的顺序决定了哪个项目显示在另一个项目的“前面”的优先级。据我所知,你不能使用情节提要将按钮放在工具栏顶部。所以你不希望它们重叠?那么为什么不使用约束呢?也许你可以调整按钮层的位置,比如
button.layer.zPosition=navigationController?.toolbar.layer.zPosition+1
谢谢Sergey-这正是我想要的。如果您将其添加为正式答案,我会将其标记为已回答。