UITabBarController 图像太小 [重复]
Posted
技术标签:
【中文标题】UITabBarController 图像太小 [重复]【英文标题】:UITabBarController images are too small [duplicate] 【发布时间】: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
【问题讨论】:
【参考方案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以上是关于UITabBarController 图像太小 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UITabBarController 中垂直居中系统图像