-
tabbar切换时,页面闪烁问题
extension CustomerTabBarController: UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
UIView.setAnimationsEnabled(false)
return true
}
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
UIView.setAnimationsEnabled(true)
}
}
-
特殊场景下,TabBar的item会左对齐如下图所示
image.png
google上查了,也没有好的解决方法。设置
self.viewControllers
的时候增加了两个UINavigationController()
占位item,并在shouldSelect
代理方法中对占位的item进行判断,不响应跳转,如果有更好的解决方法,欢迎评论留言
self.viewControllers = [navi1, UINavigationController(), navi2, UINavigationController(), navi3]
extension CustomerTabBarController: UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
UIView.setAnimationsEnabled(false)
if let nav = viewController as? UINavigationController {
if nav.viewControllers.isEmpty {
return false
}
}
return true
}
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
UIView.setAnimationsEnabled(true)
}
}
-
iPad上tabbar的样式问题
image.png
if UIDevice.current.userInterfaceIdiom == .pad {
if #available(iOS 17.0, *) {
traitOverrides.horizontalSizeClass = .compact
} else {
}
}
在iPad上显示传统样式