PBMediaSlider 是一个小型的 Swift 包,旨在重现 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
要运行示例项目,请克隆存储库,并首先从 Example 目录运行 pod install
。
PBMediaSlider
支持 SPM 5.1.0 及更高版本。 要使用 SPM,您应该使用 Xcode 11 或更高版本打开您的项目。 点击 File
-> Swift Packages
-> Add Package Dependency
,输入 https://github.com/iDevelopper/PBMediaSlider
。 选择您想要使用的版本。
将以下内容添加到您的 Cartfile
github "iDevelopper/PBMediaSlider"
请确保您按照 Carthage 集成说明 here 进行操作。
可以使用 Cocoa 依赖管理工具 CocoaPods 安装 PBMediaSlider
。
将以下内容添加到您的项目的 Podfile
pod 'PBMediaSlider'
Patrick BODET aka iDevelopper
PBMediaSlider
基于 MIT 许可证发布。 请参阅 LICENSE 文件了解更多信息。
当您在您的项目中使用此控制器时,请告诉我!
致以问候,
Patrick Bodet aka iDevelopper