我正在尝试在UITabBar中设置背景图像。标签栏和背景图片的高度为49像素。它可以在除iPhone X及更高版本以外的所有设备上正常运行。在iPhone X中,图像仅部分填充,确切地说是总高度的49像素。
为了解决此问题,我增加了图像高度,使其完全适合iPhone X设备。它也可以在运行于iOS 13的iPhone 8设备(原始背景图像调整为49像素)中很好地工作,不幸的是,在iOS 12版本的iPhone 8中,它损坏了,并且背景图像以其精确显示高度。
有人知道为什么会这样吗?有没有解决此问题的方法?
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:
()
}
您可以对图像使用任何特定的自定义,或在此块中使用不同的图像。
希望有帮助!