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