向UITabBar添加子视图,该子视图位于其他UITabBar子视图之后

时间:2018-10-15 19:12:29

标签: ios swift uitabbarcontroller uitabbar subview

我正在尝试将子视图添加到UITabBar,该子视图应该位于其他UITabBar子视图的后面。

我在UITabBarController的子类中添加了这样的子视图:

self.tabBar.addSubview(CustomTabBarController.xView!)

然后将其发送回如下:

self.tabBar.sendSubview(toBack: CustomTabBarController.xView!)

问题是它不会返回并且总是出现在前面。另外,即使是这种情况,我也可以点击tabbaritems。 UITabBar属性有问题吗?否则,我在做什么错了?

1 个答案:

答案 0 :(得分:0)

视图view A不能在view A之后。认为子视图位于其父视图的页面上。

选项卡栏也可能不允许您向其添加子视图。 Apple的UI控件通常是为完全管理其视图层次结构而构建的,尝试插入子视图或以其他方式破坏视图层次结构的结果通常是不确定的。

如果您希望一个视图位于另一个视图之后,则两个视图必须具有相同的父视图。您需要告诉标签栏的超级视图将新视图添加到标签栏的后面:

self.tabBar.superview. insertSubview(CustomTabBarController.xView!, 
  belowSubview: self.tabBar)

还请注意,使用武力展开是不明智的