CompactSlider
是一个高度可定制的 SwiftUI 多用途滑块控件。它可用于选择单个值、值范围、多个值、网格中的点或圆形网格中的极坐标点。滑块可以水平、垂直或在(圆形)网格中显示。可以使用各种样式和选项自定义滑块,包括设计您自己的样式。
该滑块是内置滑块的替代品,专为 SwiftUI 设计。对我来说,编写一个已经存在的组件的主要动机是在 macOS 12 及更低版本下非常缓慢的性能(例如,当您需要调整具有多个滑块的屏幕大小或进行动画处理时)以及当时严重过时的设计。
我受到了 Apple Photos 应用程序开发的滑块设计的启发,该应用程序大量使用滑块。还有 iPhone 16 Pro 上 Camera 应用程序中的新滑块。
滑块基本上定义了两个变体:线性滑块和网格滑块。线性滑块可以是水平或垂直的,也可以是可滚动的,其中手柄是静止的,而刻度是移动的。
网格滑块可用于选择网格中的点或圆形网格中的极坐标点。网格中的点表示 x 轴和 y 轴的值。极坐标点表示角度和半径的值。
由 CompactSliderType
定义的可能的滑块类型
File
⟩ Add Packages...
(文件 > 添加包...)。Add Package
(添加包)。https://github.com/buh/CompactSlider.git
Add Package
(添加包)。演示包包含多个用例。
演示
macOS | iOS |
---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
GridDemo
macOS | iOS |
---|---|
![]() |
![]() |
CircularGridDemo
macOS | iOS |
---|---|
![]() |
![]() |
SystemDemo
macOS | iOS |
---|---|
![]() |
![]() |
WatchOSDemo
Horizontal (水平) | Vertical (垂直) | Grid (网格) | Circular Grid (圆形网格) |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Version 1.0 已弃用,不再支持。 您可以在文件中找到版本 1.0 的文档:README v1。
您可以在这里请我喝咖啡☕️
CompactSlider
在 MIT license 下可用