Swiftpack.co - yonat/MultiToggleButton as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by yonat.
yonat/MultiToggleButton 1.8.5
Multiple state tap-to-toggle UIButton (like old camera flash button)
⭐️ 83
🕓 2 weeks ago
iOS
.package(url: "https://github.com/yonat/MultiToggleButton.git", from: "1.8.5")

Multiple State Toggle UIButton

A UIButton subclass that implements tap-to-toggle button text. (Like the camera flash and timer buttons)

Swift Version Build Status License CocoaPods Compatible
Platform PRs Welcome

Usage

Just create it with the states, and it's good to go:

let toggleButton = MultiToggleButton(image: myImage, states: ["First", "Second", "Last"])

Get and set the current state:

let state = toggleButton.currentStateIndex
toggleButton.currentStateIndex = 0

Add a tap action (in addition to the built-in state toggle):

toggleButton.action = { (sender) -> () in
    doStuff(sender.currentStateIndex)
}

Set different colors for different states (nil uses the button's tintColor):

toggleButton.colors = [nil, .gray, .red]

Set different images for different states:

toggleButton.images = [myFirstImage, mySecondImage, myLastImage]

Or do it all at once:

let toggleButton = ToggleButton(
    images: [myFirstImage, mySecondImage, myLastImage],
    states: ["First", "Second", "Last"],
    colors: [nil, .gray, .red],
    action: { (sender) -> () in doStuff(sender.currentStateIndex) }
)

Installation

CocoaPods:

pod 'MultiToggleButton'

Legacy versions:

Swift version MultiToggleButton version
4.0 (Xcode 9.4) pod 'MultiToggleButton', '~> 1.7.1'
3 pod 'MultiToggleButton', '~> 1.5.2'
2.3 pod 'MultiToggleButton', '~> 1.4.0'

Swift Package Manager:

dependencies: [
    .package(url: "https://github.com/yonat/MultiToggleButton", from: "1.8.5")
]

Meta

@yonatsharon

https://github.com/yonat/MultiToggleButton

GitHub

link
Stars: 83
Last commit: 2 weeks ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics