【问题标题】:UITabBarController images are too small [duplicate]UITabBarController 图像太小 [重复]
【发布时间】:2018-12-04 12:48:12
【问题描述】:

我有 3 个版本的图像,75 x 75、50 x 50 和 25 x 25。

当我将它设置为标签栏图像时,我得到了这样的效果:

我希望图像更大,似乎无法编辑。

我已经以编程方式构建了我的 UITabBarController。

class MainTabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        navigationController?.isNavigationBarHidden = true

        tabBar.isTranslucent = false
        tabBar.barTintColor = UIColor.hexStringToUIColor(hex: "EFF4EF")

        viewControllers = [
            generateNavigationController(with: ChatBotController(), image: #imageLiteral(resourceName: "tabBar_bot_head").withRenderingMode(.alwaysOriginal)),
        ]
    }

    fileprivate func generateNavigationController(with rootViewController: UIViewController, image: UIImage) -> UIViewController {
        let navController = UINavigationController(rootViewController: rootViewController)
        navController.tabBarItem.image = image
        return navController
    }
}

【问题讨论】:

    标签: swift uitabbarcontroller


    【解决方案1】:

    尝试在UIImage扩展中添加此功能

    extension UIImage {
    
        func resize(targetSize: CGSize) -> UIImage {
            return UIGraphicsImageRenderer(size:targetSize).image { _ in
                self.draw(in: CGRect(origin: .zero, size: targetSize))
            }
        }
    
    }
    

    并在viewDidLoad 中更改代码行

    viewControllers = [
            generateNavigationController(with: ChatBotController(), image: #imageLiteral(resourceName: "tabBar_bot_head").withRenderingMode(.alwaysOriginal)),
        ]
    

    有了这个

    viewControllers = [
            generateNavigationController(with: ChatBotController(), image: #imageLiteral(resourceName: "tabBar_bot_head").withRenderingMode(.alwaysOriginal)).resize(targetSize: CGSize(width: 50, height: 50)),
        ]
    

    【讨论】:

    • 效果很好,谢谢,但是我的图像现在是蓝色的,看起来 withRenderingMode 不起作用?
    • 尝试使用 .alwaysTemplate
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多