Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 显示UIView/UIControl重叠UIToolbar_Ios_Swift_Uinavigationcontroller_Uisplitviewcontroller_Uitoolbar - Fatal编程技术网

Ios 显示UIView/UIControl重叠UIToolbar

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

我试图在屏幕底部显示一个大按钮,以便它显示在工具栏上方

按钮重叠工具栏

我的第一次尝试是在iPad和iPhone上以横向模式工作,但按钮在纵向模式下出现在工具栏后面。因此,这可能与“拆分视图”控制器在渲染方面的差异有关:

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-这正是我想要的。如果您将其添加为正式答案,我会将其标记为已回答。