【问题标题】:Set user's profile picture on Tabbar item在 Tabbar 项目上设置用户的个人资料图片
【发布时间】:2019-07-22 08:09:33
【问题描述】:

在标签栏项目上设置个人资料图片(从 url 接收)。 我期待 TabBarItem 上更新的个人资料图片。

预期输出

【问题讨论】:

  • stackoverflow 不是代码服务。请显示您到目前为止尝试过的内容
  • 我用过:let myTabBarItem5 = (self.tabBar.items?[4])!作为 UITabBarItem 让 imgView : UIImageView = UIImageView() imgView.setImage_kf(imageString: UserModel.main.profilePic, placeHolderImage: #imageLiteral(resourceName: "icTabbarProfilePlaceholder")) 让 img = imgView.image myTabBarItem5.image = img?.withRenderingMode(.始终原创)

标签: swift tabbar


【解决方案1】:
   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)

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-12-27
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      • 2020-11-02
      • 2017-05-04
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      相关资源
      最近更新 更多