在 iOS 11 中,UITabbarItem 符合定义
UISpringLoadedInteractionSupporting
变量的 isSpringLoaded
。 在 WWDC 2017 会议 203 中,他们指出要启用弹簧加载,您需要做的就是在控件上将 isSpringLoaded 设置为 true,并将项目拖动到其中将触发该操作。
这对于 UIButton 来说效果很好。 但我无法让 UITabbar 发生任何事情。 我的故事板中有一个完全封装的 TabBarController。 我设置了
tabBarItem.isSpringLoaded = true
...对于 viewController 我想要弹簧加载。 将项目拖到该项目上不会执行任何操作。
我在文档中找不到任何内容来指示还应该做什么。
我今天一直在研究这个问题,终于找到了解决方案。
由于某种原因,从情节提要中启用
isSpringLoaded
属性不起作用,所以我所做的是从代码中启用 isSpringLoaded
属性。
使所有 UITabBarItems 都具有 springLoading 的快速解决方案是
override func viewDidLoad() {
super.viewDidLoad()
tabBarController?.tabBar.items?.forEach({ (item) in
item.isSpringLoaded = true
})
}
这适用于 Xcode 9.0 beta 4 (9M189t)
将 tabBar 的 isSpringLoaded 设置为 true 在 Xcode 15.4 上对我有用
tabBar.isSpringLoaded = true