【问题标题】:Adding subview to UITabBar that goes behind other UITabBar subviews将子视图添加到其他 UITabBar 子视图之后的 UITabBar
【发布时间】:2018-10-15 19:12:29
【问题描述】:

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

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

self.tabBar.addSubview(CustomTabBarController.xView!)

然后我将其发送回如下:

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

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

【问题讨论】:

    标签: ios swift uitabbarcontroller uitabbar subview


    【解决方案1】:

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

    标签栏也可能不允许您向其添加子视图。 Apple 的 UI 控件通常是为了完全管理其视图层次结构而构建的,尝试插入子视图或以其他方式混淆视图层次结构的结果通常是未定义的。

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

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

    另请注意,您使用强制展开是不明智的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 2023-03-11
      • 2011-01-08
      • 2012-04-23
      相关资源
      最近更新 更多