PBMediaSlider

CI Status Version License Platform Swift: 5.9 Swift Package Manager: compatible

概述

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

安装

Swift Package Manager

PBMediaSlider 支持 SPM 5.1.0 及更高版本。 要使用 SPM,您应该使用 Xcode 11 或更高版本打开您的项目。 点击 File -> Swift Packages -> Add Package Dependency,输入 https://github.com/iDevelopper/PBMediaSlider。 选择您想要使用的版本。

Carthage

将以下内容添加到您的 Cartfile

github "iDevelopper/PBMediaSlider"

请确保您按照 Carthage 集成说明 here 进行操作。

CocoaPods

可以使用 Cocoa 依赖管理工具 CocoaPods 安装 PBMediaSlider

将以下内容添加到您的项目的 Podfile

pod 'PBMediaSlider'

要求

特性

作者

Patrick BODET aka iDevelopper

许可证

PBMediaSlider 基于 MIT 许可证发布。 请参阅 LICENSE 文件了解更多信息。

当您在您的项目中使用此控制器时,请告诉我!

致以问候,

Patrick Bodet aka iDevelopper