iPad 和 iPhone 中的 UITabbar 外观变化
UITabbar Appearance Chang in iPad and iPhone
我已经通过故事板将标签栏控件添加到我的视图控制器中,
有以下限制..
由于我需要ui红色所选项目的选择指示器图像,我在viewDidLayoutSubviews
方法
中使用以下代码
override func viewDidLayoutSubviews(){
super.viewDidLayoutSubviews();
viewForTab.setShadow(shadowColor: UIColor.gray.cgColor, shadowOffset:CGSize.init(width: 0.0, height: 3.0), shadowOpacity: 0.8, shadowRadius: 3.0)
tabBar.selectionIndicatorImage = APPDELEGATE.getImageWithColorPosition(color: UIColor.themeSectionBackgroundColor, size: CGSize.init(width: viewForTab.frame.width/2, height: viewForTab.frame.height ), lineSize: CGSize.init(width: viewForTab.frame.width/2, height: 1.5))
}
它在 iPhone 中获得完美效果,但在 ipad 中 ui 变得丑陋,
正如您在下图中看到的,登录和注册文本未对齐中心,并且指示器将 space 从左侧 放置uitabbar 项目,但在 iphone 中,它工作得很好。
无法确定问题..
制作 class 的 UITabBar 并从 Stroyboard
中提供 class 的 UITabBar
class TabBar: UITabBar {
override var traitCollection: UITraitCollection {
guard UIDevice.current.userInterfaceIdiom == .pad else {
return super.traitCollection
}
return UITraitCollection(horizontalSizeClass: .compact)
}
}
希望对您有所帮助
我已经通过故事板将标签栏控件添加到我的视图控制器中,
有以下限制..
由于我需要ui红色所选项目的选择指示器图像,我在viewDidLayoutSubviews
方法
override func viewDidLayoutSubviews(){
super.viewDidLayoutSubviews();
viewForTab.setShadow(shadowColor: UIColor.gray.cgColor, shadowOffset:CGSize.init(width: 0.0, height: 3.0), shadowOpacity: 0.8, shadowRadius: 3.0)
tabBar.selectionIndicatorImage = APPDELEGATE.getImageWithColorPosition(color: UIColor.themeSectionBackgroundColor, size: CGSize.init(width: viewForTab.frame.width/2, height: viewForTab.frame.height ), lineSize: CGSize.init(width: viewForTab.frame.width/2, height: 1.5))
}
它在 iPhone 中获得完美效果,但在 ipad 中 ui 变得丑陋, 正如您在下图中看到的,登录和注册文本未对齐中心,并且指示器将 space 从左侧 放置uitabbar 项目,但在 iphone 中,它工作得很好。
无法确定问题..
制作 class 的 UITabBar 并从 Stroyboard
中提供 class 的 UITabBarclass TabBar: UITabBar {
override var traitCollection: UITraitCollection {
guard UIDevice.current.userInterfaceIdiom == .pad else {
return super.traitCollection
}
return UITraitCollection(horizontalSizeClass: .compact)
}
}
希望对您有所帮助