我关注了这个博客并且它有效。我对其进行了更改并使用图像而不是图像名称。
1- 在
UITabBar
上进行扩展并添加下面的这个方法
import UIKit
extension UITabBarController {
func addSubviewToLastTabItem(_ image: UIImage) {
if let lastTabBarButton = self.tabBar.subviews.last, let tabItemImageView = lastTabBarButton.subviews.first {
if let accountTabBarItem = self.tabBar.items?.last {
accountTabBarItem.selectedImage = nil
accountTabBarItem.image = nil // be careful, this might cause a crash in newer versions of Xcode
}
let imgView = UIImageView()
imgView.frame = tabItemImageView.frame
imgView.layer.cornerRadius = tabItemImageView.frame.height/2
imgView.layer.masksToBounds = true
imgView.contentMode = .scaleAspectFill
imgView.clipsToBounds = true
imgView.image = image
self.tabBar.subviews.last?.addSubview(imgView)
}
}
}
2-使用它
let yourImage = UIImage(named: "your-image")
override func viewDidLayoutSubviews() { // add to any vc
super.viewDidLayoutSubviews()
tabBarController?.addSubviewToLastTabItem(yourImage)
}
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let viewController:ViewController = mainStoryboard.instantiateViewController(withIdentifier: "viewController") as! ViewController
let profileTabBarItem = UITabBarItem(title: "SEARCH", image: UIImage(named: "profile_Image"), selectedImage: UIImage(named: "search_selected"))
profileTabBarItem.tag = 0
viewController.tabBarItem = profileTabBarItem
let viewControllerNC = UINavigationController(rootViewController:viewController)