Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yonat/MultiToggleButton
Multiple state tap-to-toggle UIButton (like old camera flash button)
https://github.com/yonat/MultiToggleButton
swift toggle uibutton
Last synced: 3 days ago
JSON representation
Multiple state tap-to-toggle UIButton (like old camera flash button)
- Host: GitHub
- URL: https://github.com/yonat/MultiToggleButton
- Owner: yonat
- License: mit
- Created: 2015-03-04T16:43:00.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-11-01T14:13:52.000Z (about 1 month ago)
- Last Synced: 2024-11-28T12:38:03.120Z (14 days ago)
- Topics: swift, toggle, uibutton
- Language: Swift
- Homepage:
- Size: 6.03 MB
- Stars: 83
- Watchers: 3
- Forks: 17
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-ios - MultiToggleButton - A UIButton subclass that implements tap-to-toggle button text (Like the camera flash and timer buttons). (UI / Button)
- awesome-swift - MultiToggleButton - A UIButton subclass that implements tap-to-toggle button text (like the camera flash and timer buttons). (Libs / UI)
- awesome-cocoa - MultiToggleButton
- awesome-swift - MultiToggleButton - A UIButton subclass that implements tap-to-toggle button text (like the camera flash and timer buttons). (Libs / UI)
- awesome-ios-star - MultiToggleButton - A UIButton subclass that implements tap-to-toggle button text (Like the camera flash and timer buttons). (UI / Button)
- fucking-awesome-swift - MultiToggleButton - A UIButton subclass that implements tap-to-toggle button text (like the camera flash and timer buttons). (Libs / UI)
- awesome-swift - MultiToggleButton - Multiple state tap-to-toggle UIButton (like old camera flash button) ` 📝 a year ago` (UI [🔝](#readme))
README
# Multiple State Toggle UIButton
A UIButton subclass that implements tap-to-toggle button text. (Like the camera flash and timer buttons)[![Swift Version][swift-image]][swift-url]
[![Build Status][travis-image]][travis-url]
[![License][license-image]][license-url]
[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/MultiToggleButton.svg)](https://img.shields.io/cocoapods/v/MultiToggleButton.svg)
[![Platform](https://img.shields.io/cocoapods/p/MultiToggleButton.svg?style=flat)](http://cocoapods.org/pods/MultiToggleButton)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
## Usage
Just **create** it with the states, and it's good to go:
```swift
let toggleButton = MultiToggleButton(image: myImage, states: ["First", "Second", "Last"])
```Get and set the **current state**:
```swift
let state = toggleButton.currentStateIndex
toggleButton.currentStateIndex = 0
```Add a **tap action** (in addition to the built-in state toggle):
```swift
toggleButton.action = { (sender) -> () in
doStuff(sender.currentStateIndex)
}
```Set **different colors** for different states (`nil` uses the button's ```tintColor```):
```swift
toggleButton.colors = [nil, .gray, .red]
```Set **different images** for different states:
```swift
toggleButton.images = [myFirstImage, mySecondImage, myLastImage]
```Or do it **all at once**:
```swift
let toggleButton = ToggleButton(
images: [myFirstImage, mySecondImage, myLastImage],
states: ["First", "Second", "Last"],
colors: [nil, .gray, .red],
action: { (sender) -> () in doStuff(sender.currentStateIndex) }
)
```## Installation
### CocoaPods:
```ruby
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:
```swift
dependencies: [
.package(url: "https://github.com/yonat/MultiToggleButton", from: "1.8.8")
]
```## Meta
[@yonatsharon](https://twitter.com/yonatsharon)
[https://github.com/yonat/MultiToggleButton](https://github.com/yonat/MultiToggleButton)
[swift-image]:https://img.shields.io/badge/swift-4.2-orange.svg
[swift-url]: https://swift.org/
[license-image]: https://img.shields.io/badge/License-MIT-blue.svg
[license-url]: LICENSE.txt
[travis-image]: https://img.shields.io/travis/dbader/node-datadog-metrics/master.svg?style=flat-square
[travis-url]: https://travis-ci.org/dbader/node-datadog-metrics
[codebeat-image]: https://codebeat.co/badges/c19b47ea-2f9d-45df-8458-b2d952fe9dad
[codebeat-url]: https://codebeat.co/projects/github-com-vsouza-awesomeios-com