Текст заголовка UITabBarItem не выравнивается централизованно, когда мы устанавливаем устройство в альбомном режиме в iOS13 - PullRequest
1 голос
/ 07 апреля 2020

Я реализую TabBar динамически в моем приложении Objective- C iOS, в котором все заголовки TabBarItem правильно отображаются в портретном режиме, когда я вращаю устройство в альбомном режиме в то время, когда позиция заголовка TabBarItem не отображается по центру.

Здесь я прилагаю свой портретный снимок экрана TabBar

enter image description here

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

enter image description here

Для решения этой проблемы у меня есть одно решение здесь:

- (UITraitCollection *)traitCollection {
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        return [super traitCollection];
    }else{
        return [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassCompact];
    }
}

Если я использую это решение, то оно работает нормально в режиме LandScape, но когда я добавил этот метод в свой код, он остановил поддержку темного режима в моем ViewController.

Так что я хочу правильное выравнивание в режиме LandScape, а также я хочу поддерживать темный режим в моем ViewController также.

Примечание. Эта проблема возникает только на устройстве iOS13 и только на iPhone (ниже iOS13 на всех устройствах iPhone она работает нормально, а на iPad - на любой версии iOS).

AnyOne Можете ли вы помочь мне. Любая помощь ценится. Спасибо

1 Ответ

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

Я нашел решение этой проблемы, вы хотите добавить один метод в ваш файл 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;
        }
    }

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

...