在UITabBar中设置背景图像的问题

问题描述 投票:-1回答:1

我正在尝试在UITabBar中设置背景图像。标签栏和背景图片的高度为49像素。它可以在除iPhone X及更高版本以外的所有设备上正常运行。在iPhone X中,图像仅部分填充,确切地说是总高度的49像素。

为了解决此问题,我增加了图像高度,使其完全适合iPhone X设备。它也可以在运行于iOS 13的iPhone 8设备(原始背景图像调整为49像素)中很好地工作,不幸的是,在iOS 12版本的iPhone 8中,它损坏了,并且背景图像以其精确显示高度。

有人知道为什么会这样吗?有没有解决此问题的方法?

ios swift uitabbarcontroller uitabbar
1个回答
0
投票

UITabBar非常反复无常。如果确实找到了每种尺寸的选项卡的解决方案,则应使用extension,这样可以轻松检测设备的类型。

之后,您可以使用开关:

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:
        ()
    }

您可以对图像使用任何特定的自定义,或在此块中使用不同的图像。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.