横向模式下的 TabBar 问题
TabBar Issue in LandScapeMode
我为 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;
}
}
它会解决这个问题。谢谢
我为 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; } }
它会解决这个问题。谢谢