Music_Player3/relax.offline.mp3.music/MP/MPSideA/ViewControllers/Home(音乐资源列表)/MPSideA_CountTimerViewController.swift
2024-06-03 09:48:39 +08:00

107 lines
4.2 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// CountTimerViewController.swift
// MusicPlayer
//
// Created by Mr.Zhou on 2024/3/28.
//
import UIKit
class MPSideA_CountTimerViewController: UIViewController {
@IBOutlet weak var timesLabel: UILabel!
@IBOutlet weak var contentView: UIView!
//
private lazy var segmentedView:UISegmentedControl = {
//
let titles:[String] = timeLevels.map{($0.title)}
//SegmentedControl
let segmentedView:UISegmentedControl = .init(items: titles)
//Item
if #available(iOS 13.0, *) {
segmentedView.selectedSegmentTintColor = .init(hex: "#80F988")
} else {
segmentedView.tintColor = .init(hex: "#80F988")
}
//线
segmentedView.setDividerImage(UIImage(), forLeftSegmentState: .normal, rightSegmentState: .normal, barMetrics: .default)
//
segmentedView.setTitleTextAttributes([.foregroundColor:UIColor(hex: "#FFFFFF", alpha: 0.8), .font:UIFont.systemFont(ofSize: 14, weight: .medium)], for: .normal)
segmentedView.setTitleTextAttributes([.foregroundColor:UIColor(hex: "#000000"), .font:UIFont.systemFont(ofSize: 14, weight: .heavy)], for: .selected)
//
segmentedView.addTarget(self, action: #selector(switchTimesAction(_ :)), for: .valueChanged)
return segmentedView
}()
//
private lazy var timeLevels:[MPSideA_CountTimerLevel] = {
var array:[MPSideA_CountTimerLevel] = []
for item in MPSideA_CountTimerLevel.allCases {
array.append(item)
}
return array
}()
override func viewDidLoad() {
super.viewDidLoad()
//
view.layer.masksToBounds = true
view.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]
view.layer.cornerRadius = 18*width
//
contentView.addSubview(segmentedView)
segmentedView.snp.makeConstraints { make in
make.width.equalTo(330*width)
make.height.equalTo(38*width)
make.center.equalToSuperview()
}
//
segmentedView.selectedSegmentIndex = MPSideA_MediaCenterManager.shared.getCountTimerLevel().rawValue
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//
NotificationCenter.notificationKey.add(observer: self, selector: #selector(timesAction(_ :)), notificationName: .sideA_time_times)
NotificationCenter.notificationKey.add(observer: self, selector: #selector(completeAction(_ :)), notificationName: .sideA_stop_music)
}
deinit {
//
NotificationCenter.default.removeObserver(self)
}
//
@objc private func switchTimesAction(_ sender: UISegmentedControl) {
//
let selectedIndex = sender.selectedSegmentIndex
let value = timeLevels[selectedIndex]
//
if value != .OFF {
guard let music = MPSideA_MediaCenterManager.shared.getMusic() else {
//
print("No Data Music")
return
}
//
MPSideA_MediaCenterManager.shared.playerStart(music, actionType: .CountTime, countLevel: value)
}else {
//0
MPSideA_MediaCenterManager.shared.playerStop()
}
}
//
@objc private func timesAction(_ sender:Notification) {
DispatchQueue.main.async {
[weak self] in
guard let self = self else { return }
let time = sender.object as! TimeInterval
timesLabel.text = "Count down "+setTimesToMinSeconds(time)
}
}
//
@objc private func completeAction(_ sender:Notification) {
DispatchQueue.main.async {
[weak self] in
guard let self = self else { return }
timesLabel.text = "Timing off"
}
}
}