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 #toggle #uibutton
YOU MIGHT ALSO LIKE...
TvOSTextViewer

Light and scrollable view controller for tvOS to present blocks of text Description TvOSTextViewer is a view controller to present ...

TvOSSlider

TvOSSlider is an implementation of UISlider for tvOS. Description and usage TvOSSlider palliates missing an implementation of UISlider for tvOS as part ...

TvOSScribble

TvOSScribble, based on CoreML, mitigates the lack of a physical numpad area in Siri Remote implementing a handwriting gesture recognizer. ...

TvOSPinKeyboard

PIN keyboard for tvOS Description TvOSPinKeyboard is a view controller that allows easily asking for PIN codes in tvOs Requirements ...

TvOSMoreButton

📺 A tvOS button which truncates long text with '... More'. The TvOSMoreButton is a simple view which aims to ...