标签栏项目图像未显示

时间:2017-06-23 17:35:47

标签: ios swift

我在assets文件夹中有一个图像,它没有显示在标签栏上。我已经将“渲染为”设置为“原始图像”,正如其他答案所说的那样,但这并不能解决问题。

class CustomTabBarController: UITabBarController {
override func viewDidLoad() {
    super.viewDidLoad()


    let homeController = HomeController(collectionViewLayout: UICollectionViewFlowLayout())
    let navigationController = UINavigationController(rootViewController: homeController)
    navigationController.tabBarItem.image = UIImage(named:"news_feed_icon")

    viewControllers = [homeController]

    }
}

3 个答案:

答案 0 :(得分:2)

试试这个。

添加viewDidLoad

let customTabBarItem:UITabBarItem = UITabBarItem(title: nil, image: UIImage(named: "news_feed_icon")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal), selectedImage: UIImage(named: "news_feed_icon"))
    self.tabBarItem = customTabBarItem

答案 1 :(得分:0)

可能有几个原因导致这种情况发生:

1)您可能为图片输入了错误的名称

2)图片的大小可能太大而无法显示。标签栏项目图像的大小应为28pt-32pt(像素)。

3)它也可能不是正确的格式。标签栏图像应为PNG,使用一种纯色呈现。如果您尝试在公园或其他地方加载树的JPEG,可能效果不佳。

同时

如果您希望更改 UITabBarItem的图片,我发现您需要明确创建标签栏项目。我通常会删除标签栏中的所有项目,并使用新图片构建所有新项目,如果我需要“更新”并将图像投放到UITabBarItem

因此,如果这是您的问题,我建议您在视图控制器中编写一个功能,并在上面的viewDidLoad中,只需在您的控制器上调用该功能。

答案 2 :(得分:0)

我不确定原因,但您需要遵循相同代码的不同序列。首先将viewController添加到tabBar然后添加其图像。

class CustomTabBarController: UITabBarController {
override func viewDidLoad() {
    super.viewDidLoad()


    let homeController = HomeController(collectionViewLayout: UICollectionViewFlowLayout())
    let navigationController = UINavigationController(rootViewController: homeController)

    //First do this 
    viewControllers = [homeController]

    //Then add image
    navigationController.tabBarItem.image = UIImage(named:"news_feed_icon")  
    }
}