如何找到特定UITabBarItem的UIView?

时间:2015-12-02 19:46:14

标签: ios swift uiview uitabbaritem

我正在使用名为SwiftyWalkthrough的外部库,它允许我在屏幕上仅显示某些视图,以通过我的应用程序的UI引导新用户。我想要向用户公开的第一个项目是UITabBarItem。我需要找到与该特定UITabBarItem相关联的UIView。我知道该项目的索引,我给它一个标签。但我没有找到方法帮助我找到这个观点。当然,我只想使用公共接口来实现这一目标。

2 个答案:

答案 0 :(得分:24)

我通过访问tabBar的子视图解决了我的问题。 userInteractionEnabled的视图是UITabBarItems。按它们的minX值对它们进行排序可以保证它们与tabBar.items数组的顺序相同。

extension UITabBarController {
    func orderedTabBarItemViews() -> [UIView] {
        let interactionViews = tabBar.subviews.filter({$0.isUserInteractionEnabled})
    return interactionViews.sorted(by: {$0.frame.minX < $1.frame.minX})
    }
}

答案 1 :(得分:4)

使用Objective-C在iOS10中测试:

{
    foo: "string",
    bar: "another string",
    baz: 4                  // Incorrect type
}