ios - LandScapeMode 中的 TabBar 问题
问题描述
我为 TabBar 创建了一个演示应用程序,其中我采用了一个 .xib,其中我添加了一个 UITabBar,并且我添加了两个 UITabBarItem。当我以纵向模式运行应用程序时,它工作正常并且设计看起来不错。在纵向模式设计如下所示
但是当我将设备旋转到横向时,图像和标题对齐发生了变化,它显示不正确,横向模式图像如下所示
你能建议我解决这个问题吗?注意 - 我没有使用 TabBarController,只有 TabBar 和 TabBarItems
解决方案
我找到了这个问题的解决方案,你想在你的 viewController.m 文件中添加一个方法,它有一个 TabBar。
如果您的应用程序不支持暗模式(我的意思是您禁用暗模式),那么您需要添加此方法
-(UITraitCollection *)traitCollection { if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { return [super traitCollection]; }else{ return [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassCompact]; } }
如果您的应用程序支持暗模式,那么您需要添加此方法
-(UITraitCollection *)traitCollection { if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { return [super traitCollection]; }else{ UITraitCollection *superSizeClass = [super traitCollection]; UITraitCollection *verticalSizeClass = [UITraitCollection traitCollectionWithVerticalSizeClass:UIUserInterfaceSizeClassRegular]; NSArray *combinedTraitArray = [NSArray arrayWithObjects: superSizeClass,verticalSizeClass, nil]; UITraitCollection *combinedTraits = [UITraitCollection traitCollectionWithTraitsFromCollections: combinedTraitArray]; return combinedTraits; } }
它将适用于这个问题。谢谢。
推荐阅读
- kubernetes - 是否可以在 kubernetes yaml env 设置中传递当前日期时间?
- java - 如何以编程方式重新启动 Android 10 中的应用程序?
- angular - Angular中的条件数据绑定与管道(翻译)变量
- php - 使用 laravel 进行条纹支付
- javascript - 我想替换数组中对象的值?
- python - 如何从两行中获取值的总和并将其分配给行本身 pandas
- asp.net - 如何将用户数据从视图传递到控制器并返回一个罗马数字
- c# - 将绑定从一个属性“转移”到另一个
- reactjs - github页面没有从部署的React App中的服务器加载文件
- python - Winsound 导致我的 tkinter GUI 打开缓慢