Код: Выделить всё
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.navigationBar.backgroundColor = .clear
navigationItem.setHidesBackButton(true, animated: false)
rightButtonsImagesArrayNormal = ["gear","unmute"]
rightButtonsImagesArraySelected = ["gear","mute"]
navigationController?.navigationBar.addSubview(rightStackView)
setupNavigationBarButtonConstraint()
setupRightButtons()
}
func setupNavigationBarButtonConstraint() {
rightStackView.topAnchor.constraint(equalTo: (navigationController?.navigationBar.topAnchor)!, constant: 8.0).isActive = true
rightStackView.bottomAnchor.constraint(equalTo: (navigationController?.navigationBar.bottomAnchor)!, constant: -8.0).isActive = true
rightStackView.trailingAnchor.constraint(equalTo: (navigationController?.navigationBar.trailingAnchor)!, constant: -SafeArea().right()).isActive = true
}
func setupRightButtons() {
var configuration = UIButton.Configuration.plain()
configuration.baseBackgroundColor = UIColor.clear
barButton = UIButton(configuration: configuration, primaryAction: nil)
let handler: UIButton.ConfigurationUpdateHandler = { button in
switch button.state {
case .normal: button.configuration?.image = UIImage(named: self.rightButtonsImagesArrayNormal[index-1])
case .selected: button.configuration?.image = UIImage(named: self.rightButtonsImagesArraySelected[index-1])
default: break
}
}
barButton.configurationUpdateHandler = handler
barButton.tag = index
barButton.widthAnchor.constraint(equalToConstant: CGFloat(navigationBarButtonHeight)).isActive = true
barButton.heightAnchor.constraint(equalToConstant: CGFloat(navigationBarButtonHeight)).isActive = true
barButton.addTarget(self, action: #selector(self.rightBarButtonAction), for: .touchUpInside)
rightStackView.addArrangedSubview(barButton)
rightStackView.widthAnchor.constraint(equalToConstant: CGFloat(((navigationBarButtonHeight+16)*rightButtonsImagesArrayNormal.count) - 16)).isActive = true
}
Код: Выделить всё
navigationController?.navigationBar.isUserInteractionEnabled = false
Код: Выделить всё
barButton.isUserInteractionEnabled = true
rightStackView.isUserInteractionEnabled = true
Подробнее здесь: https://stackoverflow.com/questions/793 ... gation-bar
Мобильная версия