簡體   English   中英

當我們在iOS13中將設備設置為橫向模式時,UITabBarItem標題文本未居中對齊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM