p-larson / SwiftUISelector

A Modern Horizontal Option Selector View for SwiftUI

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SwiftUISelector

A perfect option picker. Great for navigation. Simple to use.

Example 1 Usage with SwiftUIPager

Try it out with @fermoya's package SwiftUIPager!

Swift Package Manager

SwiftUISelector is available through Swift Package Manager.

Add it to an existing Xcode project as a package dependency:

  1. From the File menu, select Swift Packages › Add Package Dependency…
  2. Enter "https://github.com/p-larson/SwiftUISelector" into the package repository URL text field

or

Copy and Paste SwiftUIPager.swift into your project!

Features

  • Smooth Selection
  • User Control
  • Dynamic Options
  • Simple Animations

Requirements

  • iOS 14, macOS 10.15
  • Swift 5.3

Initialization

Important to note:

SelectorView<Option, OptionView>: View where Option: Hashable, OptionView: View
  1. Use Strings for Options (Intended Initializer)
// SelectorView(selectedOption: Binding<Int>, options: [String])
SelectorView(
    selectedOption: $selectedOption,
    options: ["Classial", "Star", "Zodiac", "Text Art"]
)
  1. Custom Options and Option View. (This is to give you a lot of freedom to make the SelectorView fit your needs)
/*
    SelectorView(
        selectedOption: Binding<Int>, 
        options: [Option], 
        @ViewBuilder content: @escaping (Option) -> OptionView
    )
 **/
SelectorView(selectedOption: $selectedOption, options: [1, 2, 3, 4]) { (option) in
    Text(option.description)
        .italic()
        .padding()
        .background(
            Rectangle()
            .fill(Color.clear)
            .border(Color.black, width: 2)
            .padding(.bottom, 4)
        )
}
.font(
    .system(
        size: 24,
        weight: Font.Weight.black,
        design: Font.Design.monospaced
    )
)

License

I'm not good with legal stuff, use my code as you wish, feel free to keep the credit tag in the code, idk.

Open Source, do what ever you want. Maybe follow me on Instagram I guess.

About

A Modern Horizontal Option Selector View for SwiftUI


Languages

Language:Swift 100.0%