Music_Player3/relax.offline.mp3.music/MP/MPPositive/Views/Base/MPPositive_CustomTabBarView.swift
2024-09-26 14:07:13 +08:00

94 lines
3.1 KiB
Swift

//
// MPPositive_CustomTabBarView.swift
// MusicPlayer
//
// Created by Mr.Zhou on 2024/4/19.
//
import UIKit
class MPPositive_CustomTabBarView: UIView {
///
private lazy var bgImageView:UIImageView = {
let bgImageView:UIImageView = .init(image: .init(named: "TabBar'bg"))
bgImageView.contentMode = .scaleAspectFill
bgImageView.layer.masksToBounds = true
bgImageView.layer.cornerRadius = 24*width
bgImageView.layer.maskedCorners = [.layerMinXMinYCorner,.layerMaxXMinYCorner]
return bgImageView
}()
///items
private lazy var tabBarItems:[MPPositive_CustomTabBarItem] = {
var tabBarItems:[MPPositive_CustomTabBarItem] = []
for index in 0..<titles.count {
let itemView:MPPositive_CustomTabBarItem = .init(frame: .init(x: 0, y: 0, width: 36*width, height: 36*width))
itemView.tag = index
itemView.title = titles[index]
itemView.isUserInteractionEnabled = true
itemView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(switchActionClick(_ :))))
tabBarItems.append(itemView)
}
return tabBarItems
}()
///titles
private lazy var titles:[String] = ["B_Home","B_Seach","B_Mine"]
///itemIndex
private lazy var selectedItemIndex:Int = 0
override init(frame: CGRect) {
super.init(frame: frame)
confirgue()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
//
private func confirgue() {
backgroundColor = .clear
//
layer.masksToBounds = false
//
addSubview(bgImageView)
bgImageView.snp.makeConstraints { make in
make.left.top.right.bottom.equalToSuperview()
}
//ItemsView
tabBarItems.forEach { item in
addSubview(item)
item.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.width.equalToSuperview().multipliedBy(0.28)
make.height.equalToSuperview()
make.centerX.equalToSuperview().multipliedBy(0.45 + 0.55*Double(item.tag))
}
}
//线
guard MP_NetWorkManager.shared.netWorkStatu != .reachable else {
//item
tabBarItems.first?.isSelected = true
selectedItemIndex = 0
return
}
//线
tabBarItems.last?.isSelected = true
selectedItemIndex = 2
}
//
@objc private func switchActionClick(_ sender:UITapGestureRecognizer) {
endEditing(true)
let tag = sender.view?.tag ?? 0
//tag
guard selectedItemIndex != tag else {
//
return
}
tabBarItems.forEach { item in
item.isSelected = item.tag == tag
}
selectedItemIndex = tag
//
NotificationCenter.notificationKey.post(notificationName: .switch_tabBarItem, object: tag)
}
}