Я создаю приложение музыкального проигрывателя, и у меня есть панель воспроизведения / паузы для управления музыкой.
Я хочу иметь возможность использовать эту панель в своем приложении в разных VC, но не могу понять, как это сделать, не перезапуская «play / pause-view» в каждом VC. Если я перезапускаю его, состояние кнопки паузы и воспроизведения не связывается через VC: s. В настоящее время я создаю контейнерное представление в каждом VC и назначаю его классу Play / Pause-bar, называемому "PlayBar.swift".
Этомой текущий код для воспроизведения / паузы с xib:
class PlayBar: UIView {
let kCONTENT_XIB_NAME = "PlayBarView"
@IBOutlet weak var playBtnOutlet: UIButton!
@IBOutlet weak var premiumBtnOutlet: UIButton!
@IBOutlet weak var timerBtnOutlet: UIButton!
@IBOutlet var playBarView: UIView!
static var currentWindow = UIViewController()
static var currentlyPlaying = false
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
func commonInit() {
Bundle.main.loadNibNamed(kCONTENT_XIB_NAME, owner: self, options: nil)
playBarView.fixInView(self)
}
@objc func playBtnAction(sender: UIButton){
}
}
extension UIView
{
func fixInView(_ container: UIView!) -> Void{
self.translatesAutoresizingMaskIntoConstraints = false;
self.frame = container.frame;
container.addSubview(self);
NSLayoutConstraint(item: self, attribute: .leading, relatedBy: .equal, toItem: container, attribute: .leading, multiplier: 1.0, constant: 0).isActive = true
NSLayoutConstraint(item: self, attribute: .trailing, relatedBy: .equal, toItem: container, attribute: .trailing, multiplier: 1.0, constant: 0).isActive = true
NSLayoutConstraint(item: self, attribute: .top, relatedBy: .equal, toItem: container, attribute: .top, multiplier: 1.0, constant: 0).isActive = true
NSLayoutConstraint(item: self, attribute: .bottom, relatedBy: .equal, toItem: container, attribute: .bottom, multiplier: 1.0, constant: 0).isActive = true
}
}