PBMediaSlider 0.1.0

PBMediaSlider 0.1.0

iDevelopper维护。



  • iDevelopper

PBMediaSlider

CI Status Version License Platform

概述

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

安装

Swift Package Manager

PBMediaSlider支持5.1.0及更高版本的SPM。要使用SPM,您应该使用Xcode 11或更高版本来打开您的项目。点击文件 -> Swift Packages -> 添加包依赖,输入https://github.com/iDevelopper/PBMediaSlider。选择您想使用的版本。

Carthage

请将以下内容添加到您的Cartfile中

github "iDevelopper/PBMediaSlider"

确保您遵循了Carthage集成说明在此处

CocoaPods

PBMediaSlider可以通过Cocoa依赖管理器CocoaPods进行安装。

请将以下内容添加到您的Podfile中

pod 'PBMediaSlider'

需求

  • iOS 13或更高版本。

特性

  • iOS 16+对Apple Music外观和感觉的支持。
  • 滑块和进度控件支持。
  • 组合订阅者支持。
  • 全面支持从右到左。
  • 支持无障碍访问。
  • iOS 13暗黑模式支持。

作者

Patrick BODET,又名iDevelopper

许可证

PBMediaSlider可在MIT许可证下使用,有关更多信息,请参阅LICENSE文件。

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

问候

Patrick Bodet,又名iDevelopper