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

Posted

技术标签:

【中文标题】自定义标签栏背景图像未正确显示【英文标题】:Custom Tab Bar Background Image is not showing correctly 【发布时间】:2020-07-18 09:33:29 【问题描述】:

我正在为我的 ios 应用实现一个自定义标签栏。我使用以下代码显示背景图像:

 class TabNavigationMenu: UIView 
 // ...
 // ...
    UIGraphicsBeginImageContext(self.frame.size)
    UIImage(named: "tabBarbg.png")?.draw(in: self.bounds)
    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    if let image = image 
        self.backgroundColor = UIColor(patternImage: image)
    
 

但是,标签栏是这样呈现的:

另外,当我创建视图并将其显示在屏幕的其他任何位置时,它会正确显示。我在那里也使用相同的代码。举个例子:

知道问题可能是什么吗?我猜这个解决方案也可以解决视图顶部的微弱蓝线......

【问题讨论】:

【参考方案1】:

你可以试试这个在ios中自定义标签栏

//Set the background color
UITabBar.appearance().backgroundColor = .red
tabBar.backgroundImage =  UIImage(named: "tabBarbg.png")

//Set the item tint colors
tabBar.tintColor = .white
tabBar.unselectedItemTintColor = .lightGray

【讨论】:

这不是我问的。我正在制作一个自定义标签栏。 @SaadRehman 你如何使用你的类 TabNavigationMenu。你能解释一下吗? 我拥有原来的 tabBar,然后使用这个 UIView 在它的位置显示我的自定义标签栏。 medium.com/sprinthub/… 我正在使用此链接,但我必须对我的自定义标签栏进行一些更改。我弄清楚了问题所在。我使用默认 tabBar 的框架来制作自定义标签栏,使其默认高度为 49。这就是图像不断重复的原因。

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

如何让自定义标签栏显示标签栏项目在 Xcode 中设置的选定图像?

iOS 自定义标签栏项目比标签栏高

标签栏自定义按钮图像不显示

自定义标签栏背景图片太大

自定义“更多”标签栏

如何在ios中更改标签栏项目的背景图像?