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