我使用一个名为SwiftyWalkthrough的外部库,它允许我只显示屏幕上的某些视图,以指导新用户通过我的应用程序的用户界面。我想要暴露给用户的第一个项目是UITabBarItem。我需要找到与特定UITabBarItem关联的UIView。我知道该项目的索引,并且给它一个标签。但我还没有找到一种方法让他们帮助我找到观点。当然,我只想使用公共接口来实现这一点。如何找到特定UITabBarItem的UIView?
8
A
回答
19
我通过访问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})
}
}
+0
谢谢!真的很好,很优雅。我知道这可能会在未来破裂,但并不是一个更好的方法...... – elsurudo
1
测试中iOS10用Objective-C的:
[alert setModalPresentationStyle:UIModalPresentationPopover];
UIView *view = [self.tabBar.selectedItem valueForKey:@"view"];
alert.popoverPresentationController.delegate = self;
alert.popoverPresentationController.sourceView = self.tabBar;
alert.popoverPresentationController.sourceRect = view.frame;
alert.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionDown;
[self presentViewController:alert animated:YES completion:nil];
7
斯威夫特3版的卡尔 - 史密斯的答案
func orderedTabBarItemViews() -> [UIView] {
let interactionViews = tabBar.subviews.filter({$0.isUserInteractionEnabled})
return interactionViews.sorted(by: {$0.frame.minX < $1.frame.minX})
}
相关问题
- 1. 将UIView添加到UITabBarItem
- 2. 动态的UIView在UITabBaritem
- 3. 如何添加UITabBarItem到UITabBar
- 4. 在UIView中查找特定点
- 5. 如何找到特定的元标记
- 6. 如何找到特定的XSS孔?
- 7. 如何找到特定键的键码
- 8. 如何找到特定的父节点?
- 9. 如何找到特定的xml节点?
- 10. 强制UITabBarItem的图像到特定的大小
- 11. UITabBarItem selectedImageTintColor。如何找到设置为tintcolor的颜色
- 12. 如何将UIGestureRecognizer限制到特定的UIView?
- 13. 我该如何确定UITabBarItem的位置?
- 14. 你如何自定义UITabBarItem的标题?
- 15. 的touchesBegan在特定的UIView
- 16. 如何找到特定区域在div
- 17. 当没有self.view时,如何找到UIView?
- 18. UIView。如何快速找到Root SuperView?
- 19. 定制UITabBarItem
- 20. 自定义UITabBarItem
- 21. 如何限制触摸事件到特定区域或UIView?
- 22. Java如何在特定字符串之后找到特定行?
- 23. 如何在特定范围内找到特定值
- 24. 如何找到特定的词在特里
- 25. 找到UITableView滚动的UIView
- 26. 无法找到“的UIView”
- 27. 如何定位UIView?
- 28. UIView renderInContex特定位置
- 29. 如何在Eclipse中找到定义特定类的插件
- 30. TYPO3扩展:如何找到特定的TS设定
有标签栏项目很多意见。你在找哪一个? –
在屏幕底部的标签栏上包含标题和图标的人。我期望它是矩形的,高度与整个标签栏相同,宽度等于标签栏宽度除以标签栏项目的数量。 –
我认为没有访问UITabbaritem backgroundView,我们只能放置标签栏项目的自定义图像,但无法获取tabbar项目的backgroundView。 –