在 TabBar 中将 UIButton 保持在前面
Posted
技术标签:
【中文标题】在 TabBar 中将 UIButton 保持在前面【英文标题】:Keep UIButton in front in TabBar 【发布时间】:2016-12-22 11:00:20 【问题描述】:我正在继承 UITabBarController
并且我正在尝试在标签栏的中心添加一个按钮。起初它显示得很好:
然后,当我在 TableViewController 中选择一个项目时,它仍然可见:
此外,当我导航回 TableViewController 时,按钮现在出现在标签栏后面:
这是我用来添加按钮的代码:
class PhotoTabBarController: UITabBarController
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view.
addPhotoButton()
// ...
func addPhotoButton()
let button = UploadButton(frame: CGRect(x: 0, y: 0, width: 60, height: 60))
// Start of code to center button in the tab bar
let heightDifference = button.frame.size.height - self.tabBar.frame.size.height;
// if the height of the center button is less than the height of the tab bar...
if (heightDifference < 0)
// center the button inside the tab bar
button.center = self.tabBar.center;
else
var center = self.tabBar.center;
center.y = center.y - heightDifference/2.0 - 5
button.center = center;
self.view.addSubview(button)
self.view.bringSubview(toFront: button)
按钮的外观是在draw(_ rect: CGRect)
函数中创建的。
我可以做些什么来使按钮在选择单元格时与标签栏一起隐藏,并在导航回 TableViewController 时被带到前面?
【问题讨论】:
为什么不使用创建一个新窗口并在其中添加按钮? Yry 在 UIApplication.shared.delegate?.window 中添加该按钮 【参考方案1】:将此按钮添加到 tabBarController.view
self.tabBarController.view.addSubview(button)
【讨论】:
这不起作用,因为这段代码已经在UITabBarController
内,所以没有 tabBarController
属性 -- self
是 tabBarController。以上是关于在 TabBar 中将 UIButton 保持在前面的主要内容,如果未能解决你的问题,请参考以下文章
在 cellForRowAtIndexPath 中将 UIButton 视为 UILabel
如何在 UIToolbar 完成按钮中将焦点从一个 UIButton 设置到另一个 UIButton
如何在 UIButton 中将 UIImageView 与它的文本居中?