MultiToggleButton
  • November 11, 2023

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

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.4”)
]

GitHub


View Github

#swift #uibutton
YOU MIGHT ALSO LIKE...
ViewCondition

✨ Super sweet syntactic sugar for SwiftUI.View initializers. At a Glance

SwiftUIX

SwiftUIX attempts to fill the gaps of SwiftUI, providing an extensive suite of components, extensions and utilities to complement the ...

SwiftUI Environment Overrides

A tiny library that adds a control panel for testing how SwiftUI app adapts for different color themes, accessibility settings, ...