【问题标题】:Issue in setting background image in UITabBar在 UITabBar 中设置背景图像的问题
【发布时间】:2020-04-17 07:02:34
【问题描述】:

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

为了解决这个问题,我增加了图像高度,使其完全适合 iPhone X 设备。它也适用于在 iOS 13 中运行的 iPhone 8 设备(将原始背景图像调整为 49 像素),不幸的是,在 iPhone 8 的 iOS 12 版本中它会中断并且显示背景图像在它的确切高度。

有人知道为什么会这样吗?这个问题有解决办法吗?

【问题讨论】:

    标签: ios swift uitabbarcontroller uitabbar


    【解决方案1】:

    UITabBar 非常反复无常。如果您确实为每种尺寸的标签栏找到了解决方案,您应该使用extension,它可以让您轻松检测设备类型。

    之后就可以使用switch了:

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

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

    希望有帮助!

    【讨论】:

    • 感谢您的回答,但我想知道除了根据设备类型自定义图像之外是否还有其他解决方案?我的要求非常简单,只是在不破坏不同操作系统和设备版本上的 UI 的情况下向 UITabBar 添加背景图像,我很确定开发人员以前遇到过这种类型的要求。对此没有直接的解决方案,这很奇怪。
    猜你喜欢
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多