![](/img/trans.png)
[英]iOS13: When I try to open a UIViewController in landscape mode, the application freezes
[英]UITabBarItem Title Text Not Align Centrally, When We Set Device in Landscape Mode in iOS13
我正在我的 Objective-C iOS 应用程序中动态实现 TabBar。 在那,所有 TabBarItem 标题在纵向模式下正确显示,但是当我在横向模式下旋转设备时,TabBarItem 标题 position 没有集中显示。
在这里,我附上了我的 TabBar 肖像截图。
当我旋转设备并显示标题 alignment 问题看起来像这样
为了解决这个问题,我得到了一个解决方案:
- (UITraitCollection *)traitCollection {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return [super traitCollection];
}else{
return [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassCompact];
}
}
如果我使用这个解决方案,那么它在 LandScape 模式下工作正常,但是当我在我的代码中添加这个方法时,它停止了我的 ViewController 中的暗模式支持。
所以我想要正确的 alignment 进入 LandScape 模式,并且我也想在我的 ViewController 中支持暗模式。
注意:此问题仅在 iOS13 设备和 iPhone 中发生(在所有 iPhone 设备中低于 iOS13,它工作正常,在 iPad 中,它在任何 iOS 版本中工作正常。)
任何人你能帮帮我。 感谢任何帮助。 谢谢
我找到了这个问题的解决方案,你想在你的 viewController.m 文件中添加一个方法,它有一个 TabBar。
如果您的应用程序支持暗模式,那么您需要添加此方法,它将适用于所有 iOS 设备
-(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;
}
}
它将适用于这个问题。 谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.