PBMediaSlider是一个Swift Package,旨在在iOS 16及以后版本中重现Apple Music中的音量和轨道滑块。PBMediaSlider保持了类似于内置UISlider的API。它具有相同的属性,如value和isContinuous。进度观察以相同的方式执行,通过添加目标和一个操作
sliderControl.addTarget(self, action: #selector(sliderValueChanged), for: .valueChanged)
或者,您可以通过订阅valuePublisher发布者来接收值更新
var cancellablePublisher: AnyCancellable!
...
self.cancellablePublisher = slider.publisher(for: .valueChanged).sink { slider in
if let slider = slider as? PBMediaSlider {
print("slider value: \(slider.value)")
}
}
- 创建滑块
slider = PBMediaSlider(frame: CGRect(x: 50, y: 100, width: self.containerView.bounds.width - 100, height: 14), value: 10.0, inRange: 0...100, activeFillColor: activeFillColor, fillColor: fillColor, emptyColor: emptyColor)
slider.autoresizingMask = [.flexibleWidth, .flexibleLeftMargin, .flexibleRightMargin]
slider = PBMediaSlider(frame: CGRect(x: 50, y: 100, width: self.containerView.bounds.width - 100, height: 14), activeFillColor: activeFillColor, fillColor: fillColor, emptyColor: emptyColor)
slider = PBMediaSlider()
slider.minimumValue = 50.0
slider.maximumValue = 200.0
slider.value = 60.0
slider.addTarget(self, action: #selector(sliderViewValueChanged(_ :)), for: .valueChanged)
slider.minimumValueImage = UIImage(systemName: "speaker.fill")
slider.maximumValueImage = UIImage(systemName: "speaker.wave.3.fill")
self.containerView.addSubview(slider)
slider.translatesAutoresizingMaskIntoConstraints = false
slider.topAnchor.constraint(equalTo: label.bottomAnchor, constant: 50).isActive = true
slider.leadingAnchor.constraint(equalTo: self.containerView.safeAreaLayoutGuide.leadingAnchor, constant: 50).isActive = true
slider.trailingAnchor.constraint(equalTo: self.containerView.safeAreaLayoutGuide.trailingAnchor, constant: -50).isActive = true
slider.heightAnchor.constraint(equalToConstant: height).isActive = true
要运行示例项目,请克隆仓库,然后首先从示例目录运行pod install
PBMediaSlider
支持5.1.0及更高版本的SPM。要使用SPM,您应该使用Xcode 11或更高版本来打开您的项目。点击文件
-> Swift Packages
-> 添加包依赖
,输入https://github.com/iDevelopper/PBMediaSlider
。选择您想使用的版本。
请将以下内容添加到您的Cartfile中
github "iDevelopper/PBMediaSlider"
确保您遵循了Carthage集成说明在此处。
PBMediaSlider
可以通过Cocoa依赖管理器CocoaPods进行安装。
请将以下内容添加到您的Podfile中
pod 'PBMediaSlider'
- iOS 13或更高版本。
- iOS 16+对Apple Music外观和感觉的支持。
- 滑块和进度控件支持。
- 组合订阅者支持。
- 全面支持从右到左。
- 支持无障碍访问。
- iOS 13暗黑模式支持。
Patrick BODET,又名iDevelopper
PBMediaSlider
可在MIT许可证下使用,有关更多信息,请参阅LICENSE文件。
当我发现在您的项目中使用此控制器时,请告诉我!
问候
Patrick Bodet,又名iDevelopper