У меня есть такая панель вкладок:
![tabBarimage](https://i.stack.imgur.com/mmxkX.png)
Средняя кнопка - это просто UIImage, который добавляется в подкласс tabBarController следующим образом:
class TabBarDelegate: UITabBarController {
let button = UIImageView()
override func viewDidLoad() {
super.viewDidLoad()
delegate = self
self.tabBar.unselectedItemTintColor = #colorLiteral(red: 0.6666666865, green: 0.6666666865, blue: 0.6666666865, alpha: 1)
button.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
button.image = UIImage(named: "tabBarAdd")
button.setImageColor(color: #colorLiteral(red: 0.184496969, green: 0.6701939702, blue: 0.3898918033, alpha: 1))
let imageView = UIImageView()
imageView.image = UIImage(named: "tabBarAdd")
imageView.bounds = CGRect(x: button.frame.origin.x, y: button.frame.origin.y, width: button.frame.width, height: button.frame.height)
self.view.insertSubview(button, aboveSubview: self.tabBar)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
button.frame = CGRect.init(x: self.tabBar.center.x - 17.5, y: self.view.bounds.height - 80, width: 35, height: 35)
button.layer.cornerRadius = 17.5
}
}
Мое изображение в настоящее время не является правильным цветом, поэтому я использую расширение для изменения цвета, что является функцией button.setImageColor(color: _)
в коде.
Средняя кнопка работает нормально, когда я нажимаю ее, тач просто проходит по изображению и до вкладки BarItem.
То, что я хотел бы сделать, - это когда происходит переход к контроллеру среднего вида, чтобы скрыть изображение.
Я пытался использовать функцию viewDidAppear()
в отображаемом viewController. Я использовал этот код:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let tabBarD = TabBarDelegate()
tabBarD.button.isHidden = true
}
но это не работает. Я также попытался полностью удалить изображение из суперпредставления, используя tabBarD.button.removeFromSuperview()
, но даже это не работает.
Я бы любил любые идеи и помогал.
Заранее спасибо:)