Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spacenation/swiftui-sliders
:rocket: SwiftUI Sliders with custom styles
https://github.com/spacenation/swiftui-sliders
apple ios macos sliders swift swift-library swift-package swiftui swiftui-example tvos watchos xcode
Last synced: 27 days ago
JSON representation
:rocket: SwiftUI Sliders with custom styles
- Host: GitHub
- URL: https://github.com/spacenation/swiftui-sliders
- Owner: spacenation
- License: mit
- Created: 2020-01-26T22:17:22.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2023-09-18T17:15:49.000Z (about 1 year ago)
- Last Synced: 2024-07-12T08:35:04.491Z (5 months ago)
- Topics: apple, ios, macos, sliders, swift, swift-library, swift-package, swiftui, swiftui-example, tvos, watchos, xcode
- Language: Swift
- Homepage:
- Size: 3.2 MB
- Stars: 786
- Watchers: 10
- Forks: 84
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- fucking-about-SwiftUI - Sliders
- awesome-swiftui-libraries - Swiftui sliders - SwiftUI Sliders with custom styles (Slider / Content)
- stars - swiftui-sliders
- stars - swiftui-sliders
README
## Custom SwiftUI sliders and tracks.
This package allows you to build highly customizable sliders and tracks for iOS, macOS and Mac Catalyst.### Features
- Build your own sliders and tracks using composition
- Highly customizable
- Horizontal and Vertical styles
- Range sliders with minimum/maximum value distance
- XY sliders
- Different sizes for lower and upper range thumbs### Styles
- HorizontalValueSliderStyle
- VerticalValueSliderStyle
- HorizontalRangeSliderStyle
- VerticalRangeSliderStyle
- RectangularPointSliderStyle## How to use
Add this swift package to your project
```
[email protected]:spacenation/swiftui-sliders.git
```Import and use
```swift
import Sliders
import SwiftUIstruct ContentView: View {
@State var value = 0.5
@State var range = 0.2...0.8
@State var x = 0.5
@State var y = 0.5
var body: some View {
Group {
ValueSlider(value: $value)
RangeSlider(range: $range)
PointSlider(x: $x, y: $y)
}
}
}
```
See the preview of each file to see an example## Customization with style
Use any SwiftUI view modifiers to create custom tracks and thumbs.```swift
RangeSlider(range: $model.range2, distance: 0.1 ... 1.0)
.rangeSliderStyle(
HorizontalRangeSliderStyle(
track:
HorizontalRangeTrack(
view: Capsule().foregroundColor(.purple)
)
.background(Capsule().foregroundColor(Color.purple.opacity(0.25)))
.frame(height: 8),
lowerThumb: Circle().foregroundColor(.purple),
upperThumb: Circle().foregroundColor(.purple),
lowerThumbSize: CGSize(width: 32, height: 32),
upperThumbSize: CGSize(width: 32, height: 32),
options: .forceAdjacentValue
)
)
```## SDKs
- iOS 13+
- Mac Catalyst 13.0+
- macOS 10.15+
- Xcode 11.0+## Code Contributions
Feel free to contribute via fork/pull request to master branch. If you want to request a feature or report a bug please start a new issue.## Become a Sponsor
If you find this project useful please consider becoming our GitHub sponsor.