在选项卡栏项目上设置用户的个人资料图片

问题描述 投票:0回答:2

在选项卡栏项目上设置个人资料图像(从网址接收)。 我期待

TabBarItem
上更新的个人资料图片。

预期产量

swift tabbar
2个回答
2
投票

我关注了这个博客并且它有效。我对其进行了更改并使用图像而不是图像名称。

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)
}

0
投票
   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)
© www.soinside.com 2019 - 2024. All rights reserved.