Проблема в настройке фонового изображения в UITabBar - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь установить фоновое изображение в UITabBar. Высота панели вкладок и фонового изображения составляет 49 пикселей. Хорошо работает на всех устройствах, кроме iPhone X и выше. В iPhone X изображение заполнено только частично, а точнее - 49 пикселей от общей высоты.

Чтобы устранить эту проблему, я увеличил высоту изображения, чтобы оно идеально вписывалось в iPhone X устройство. Он хорошо работает в устройстве iPhone 8 (исходное фоновое изображение изменено до 49 пикселей), работающем также в iOS 13, к сожалению, в iOS 12 версии iPhone 8 перерывы и фоновое изображение показывает в его точную высоту.

Кто-нибудь знает, почему это происходит? Есть ли решение этой проблемы?

1 Ответ

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

UITabBar довольно капризный. Если вы нашли решение для каждого размера вкладки, вы должны использовать расширение , которое позволяет легко определить тип устройства.

После этого вы можете использовать переключатель:

switch UIDevice().type {
    case .iPhone4, .iPhone4S, .iPhone5, .iPhone5C, .iPhone5S, .iPhone6, .iPhone6S, .iPhone6Plus, .iPhone6SPlus, .iPhone7, .iPhone7Plus, .iPhone8, .iPhone8Plus:
        imageView.contentMode = .scaleAspectFill
    case .iPhoneX, .iPhoneXR, .iPhoneXS, .iPhoneXSMax, .iPhone11, .iPhone11Pro, .iPhone11ProMax:
        imageView.contentMode = .scaleAspectFit
    default:
        ()
    }

Вы можете использовать любую указанную c настройку для своего изображения или использовать другие изображения внутри этого блока.

Надеюсь, что это поможет!

...