Skip to content

mathbeat/MultiToggleButton

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multiple State Toggle UIButton

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'

For legacy Swift 2.3:

pod 'MultiToggleButton', '1.4.0'

Manually:

Copy Sources/MultiToggleButton.swift to your Xcode project.

About

Multiple state tap to toggle UIButton in Swift

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 82.9%
  • Ruby 17.1%