Skip to content

Latest commit

 

History

History
128 lines (98 loc) · 4.24 KB

README.md

File metadata and controls

128 lines (98 loc) · 4.24 KB

Build Status Platforms Cocoapods SPM compatible codecov Swift Xcode MIT

Steps is a navigation bar that guides users through the steps of a task. You need to use it when a given task is complicated or has a certain sequence in the series of subtasks, we can decompose it into several steps to make things easier.

Requirements

  • iOS 10.0+ / tvOS 9.0+ / macOS 10.10+ / Ubuntu 14.04+
  • Swift 5.0+

Installation

CocoaPods

To integrate Steps into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'Steps'
Swift Package Manager

You can use The Swift Package Manager to install Steps by adding the proper description to your Package.swift file:

import PackageDescription

let package = Package(
    name: "YOUR_PROJECT_NAME",
    targets: [],
    dependencies: [
        .package(url: "https://github.com/asam139/Steps.git", from: "0.2.0")
    ]
)

Next, add Steps to your targets dependencies like so:

.target(
    name: "YOUR_TARGET_NAME",
    dependencies: [
        "Steps",
    ]
),

Then run swift package update.

Manually

Add the Steps project to your Xcode project

Example

struct Item {
    var title: String
    var image: Image?
}

struct ContentView: View {
    @ObservedObject private var stepsState: StepsState

    init() {
        let items = [
            Item(title: "First_", image: Image(systemName: "wind")),
            Item(title: ""),
            Item(title: "Second__", image: Image(systemName: "tornado")),
            Item(title: ""),
            Item(title: "Fifth_____", image: Image(systemName: "hurricane"))
        ]
        stepsState = StepsState(data: items)
    }

    func onCreateStep(_ item: Item) -> Step {
        return Step(title: item.title, image: item.image)
    }

    var body: some View {
        VStack(spacing: 12) {
            Steps(state: stepsState, onCreateStep:onCreateStep)
                .itemSpacing(10)
                .font(.caption)
                .padding()

            Button(action: {
                self.stepsState.nextStep()
            }) {
                Text("Next")
            }
            .disabled(!stepsState.hasNext)
            Button(action: {
                self.stepsState.previousStep()
            }) {
                Text("Previous")
            }
            .disabled(!stepsState.hasPrevious)
        }.padding()
    }
}

Get involved

We want your feedback. Please refer to contributing guidelines before participating.

Thanks

Special thanks to:

  • Hoping new contributors

License

Steps is released under the MIT license. See LICENSE for more information.