Проблема с TabBar в LandScapeMode - PullRequest
1 голос
/ 08 апреля 2020

Я создал одно демонстрационное приложение для TabBar, в котором я взял один .xib, и в который я добавил один UITabBar, и я добавил два UITabBarItem. И когда я запускаю приложение в портретном режиме, оно работает нормально и дизайн выглядит хорошо. в портретном режиме дизайн выглядит следующим образом:

enter image description here

Но когда я поворачиваю устройство, чтобы изменить пейзаж, время и изображение изменились, это не показывает должным образом, Изображение в ландшафтном режиме выглядит следующим образом

enter image description here

Можете ли вы предложить мне решение для этого. Примечание - я не использую TabBarController, только TabBar и TabBarItems

1 Ответ

0 голосов
/ 09 апреля 2020

Я нашел решение этой проблемы, вы хотите добавить один метод в ваш файл viewController.m с TabBar.

  1. Если ваше приложение не поддерживает темный режим (я имею в виду Вы отключаете темный режим), затем вам нужно добавить этот метод

    -(UITraitCollection *)traitCollection {
            if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
                   return [super traitCollection];
            }else{
                   return [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassCompact];
            }
    }
    
  2. Если ваше приложение поддерживает темный режим, то вам нужно добавить этот метод

    -(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;
        }
    }
    

Это будет работать для этой проблемы. Спасибо.

...