UITabBar 背景图像未正确显示

Posted

技术标签:

【中文标题】UITabBar 背景图像未正确显示【英文标题】:UITabBar background image not showing properly 【发布时间】:2016-07-27 03:28:07 【问题描述】:

我制作了自定义的 UITabBar 类并尝试设置背景图片。

tabBar.backgroundImage = UIImage(named: "my_image")?.imageWithRenderingMode(.AlwaysOriginal)

我将图像文件名设置为 my_image@2x,图像文件为 640*98

我在 iPhone6 模拟器上运行,图像似乎不够宽 Google 的“C”在下面的示例中重复

是我使用了错误的图片尺寸还是有其他问题?

【问题讨论】:

【参考方案1】:

只需重绘图像:

var image = UIImage(named: "my_image")
if let image = image 
    var centerImage: Bool = false
    var resizeImage: UIImage?
    let size = CGSize(width: UIScreen.mainScreen().bounds.size.width, height: 98)
    UIGraphicsBeginImageContextWithOptions(size, false, 0)
    if centerImage 
        //if you want to center image, use this code
        image.drawInRect(CGRect(origin: CGPoint(x: (size.width-image.size.width)/2, y: 0), size: image.size))
    
    else 
        //stretch image
        image.drawInRect(CGRect(origin: CGPoint.zero, size: size))
    
    resizeImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    tabBar.backgroundImage = resizeImage.imageWithRenderingMode(.AlwaysOriginal)

【讨论】:

以上是关于UITabBar 背景图像未正确显示的主要内容,如果未能解决你的问题,请参考以下文章

自定义标签栏背景图像未正确显示

防弹背景图像在 Outlook 中未正确显示 - 电子邮件

UITabbar 背景图像重复出现

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

如何使 UITabbar 透明以便超级视图的背景图像可见?

UITabBar 自定义背景图像应用于一个视图控制器而不是 AppDelegate