import SwiftUI import UIKit // 1. 自定义UIKit滑块(支持调整高度) class ThickSlider: UISlider { var trackHeight: CGFloat = 40 // 滑块轨道高度(可调整) override func trackRect(forBounds bounds: CGRect) -> CGRect { // 调整轨道框架,设置自定义高度 let original = super.trackRect(forBounds: bounds) return CGRect(x: original.origin.x, y: (bounds.height - trackHeight) / 2, width: original.width, height: trackHeight) } } // 2. SwiftUI包装器 struct CustomSlider: UIViewRepresentable { @Binding var value: Double var trackHeight: CGFloat var tintColor: Color func makeUIView(context: Context) -> ThickSlider { let slider = ThickSlider() slider.trackHeight = trackHeight slider.minimumValue = 0 slider.maximumValue = 1 slider.value = Float(value) slider.addTarget(context.coordinator, action: #selector(Coordinator.valueChanged(_:)), for: .valueChanged) slider.tintColor = UIColor(tintColor) return slider } func updateUIView(_ uiView: ThickSlider, context: Context) { uiView.value = Float(value) uiView.trackHeight = trackHeight uiView.tintColor = UIColor(tintColor) } func makeCoordinator() -> Coordinator { Coordinator(value: $value) } class Coordinator: NSObject { @Binding var value: Double init(value: Binding) { _value = value } @objc func valueChanged(_ sender: UISlider) { value = Double(sender.value) } } }