prank/Funny_sounds/Main/CustomTabBar.swift
2024-09-03 09:38:34 +08:00

54 lines
1.4 KiB
Swift

//
// CustomTabBar.swift
// Funny_sounds
//
// Created by 16 on 2024/8/14.
//
import UIKit
class CustomTabBar: UITabBar {
private let selectedBackgroundView = UIImageView(image: UIImage(named: "tabbars"))
override func layoutSubviews() {
super.layoutSubviews()
// tabBar
if !subviews.contains(selectedBackgroundView) {
insertSubview(selectedBackgroundView, at: 0)
}
//
updateSelectedBackgroundViewPosition()
}
func updateSelectedBackgroundViewPosition() {
guard let selectedItem = self.selectedItem, let items = self.items else {
selectedBackgroundView.isHidden = true
return
}
guard let selectedIndex = items.firstIndex(of: selectedItem) else {
selectedBackgroundView.isHidden = true
return
}
let itemWidth = bounds.width / CGFloat(items.count)
let xPosition = itemWidth * CGFloat(selectedIndex)
selectedBackgroundView.frame = CGRect(x: xPosition, y: 0, width: itemWidth, height: bounds.height)
selectedBackgroundView.isHidden = false
}
override var selectedItem: UITabBarItem? {
didSet {
updateSelectedBackgroundViewPosition()
}
}
}