Latest 1.8.0
Homepage https://github.com/yonat/MultiToggleButton
License MIT
Platforms ios 8.0, requires ARC
Authors

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 1.7.1
3 1.5.2
2.3 1.4.0

Manually:

Copy Sources/MultiToggleButton.swift to your Xcode project.

Meta

@yonatsharon

https://github.com/yonat/MultiToggleButton

Latest podspec

{
    "name": "MultiToggleButton",
    "version": "1.8.0",
    "summary": "Multiple state tap to toggle UIButton in Swift",
    "description": "A UIButton subclass that implements tap-to-toggle button text. (Like the camera flash and timer buttons)",
    "homepage": "https://github.com/yonat/MultiToggleButton",
    "screenshots": "https://raw.githubusercontent.com/yonat/MultiToggleButton/master/screenshots/toggle.gif",
    "license": {
        "type": "MIT",
        "file": "LICENSE.txt"
    },
    "authors": {
        "Yonat Sharon": "[email protected]"
    },
    "social_media_url": "http://twitter.com/yonatsharon",
    "swift_version": "4.2",
    "platforms": {
        "ios": "8.0"
    },
    "requires_arc": true,
    "source": {
        "git": "https://github.com/yonat/MultiToggleButton.git",
        "tag": "1.8.0"
    },
    "source_files": "Sources/*.swift"
}

Pin It on Pinterest

Share This