Изменить вкладку «Изображение элемента панели вкладок», открыв элементы панели вкладок в AppDelegate - PullRequest
0 голосов
/ 16 мая 2018

Я хочу выровнять изображения элементов панели вкладок на панели вкладок. Я знаю, что могу сделать это в IB, что я и сделал, и это сработало. Однако я хочу сделать это программно. Я пытаюсь сделать это в AppDelegate. Ниже приведен мой код, который не работает. Может кто-нибудь указать мне, что я делаю не так?

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let tabBarController = storyboard.instantiateViewController(withIdentifier: "RootTabBarController") as! UITabBarController

let tabArray = tabBarController.tabBar.items as NSArray?
let homeTabItem = tabArray?.object(at: 0) as! UITabBarItem
homeTabItem.imageInsets = UIEdgeInsetsMake(12.0, 0.0, -12.0, 0.0)

1 Ответ

0 голосов
/ 16 мая 2018

Доступ к представлению tabbaritem и теперь измените в соответствии с вашими потребностями.например, мне нужно установить высоту ширины изображения, поэтому я сделал это под:

class Tabbar: UITabBarController,UITabBarControllerDelegate {

override func viewDidLoad() {
    super.viewDidLoad()
    self.delegate = self
}


override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(true)

  //  self.tabBarController?.selectedIndex = 2
    for tabBarItem in (self.tabBar.items)!{

        let viewTabBar = tabBarItem.value(forKey: "view") as? UIView

        let  imgView = viewTabBar?.subviews[0] as? UIImageView
        viewTabBar?.origin.y  = 6
        imgView?.frame.size.height = 24
        imgView?.frame.size.width = 24
        imgView?.clipsToBounds = true
        imgView?.contentMode = .scaleAspectFit
    }
}


override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
    for tabBarItem in (self.tabBar.items)!{

        let viewTabBar = tabBarItem.value(forKey: "view") as? UIView
        let  imgView = viewTabBar?.subviews[0] as? UIImageView
        imgView?.frame.size.height = 24
        imgView?.frame.size.width = 24

        imgView?.clipsToBounds = true
        imgView?.contentMode = .scaleAspectFit
    }
}
}
...