Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pmusolino/PMSuperButton

🔥 PMSuperButton is a powerful UIButton coming from the countryside, but with super powers! 😎
https://github.com/pmusolino/PMSuperButton

animations button closure customizable interface-builder storyboard uibutton uicontrol

Last synced: 3 days ago
JSON representation

🔥 PMSuperButton is a powerful UIButton coming from the countryside, but with super powers! 😎

Awesome Lists containing this project

README

        


Icon

[![Language](https://img.shields.io/badge/Swift-4%20%26%205-orange.svg)]()
[![GitHub license](https://img.shields.io/badge/License-MIT-lightgrey)](https://github.com/pmusolino/PMSuperButton/blob/master/LICENSE)
[![Pod version](https://img.shields.io/badge/Cocoapods-Compatible%20-blue)](https://cocoapods.org/pods/PMSuperButton)
[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-yellow.svg)](https://github.com/Carthage/Carthage)

PMSuperButton is a powerful UIButton coming from the countryside, but with super powers! 😎


Icon


Icon


Icon

##### An easy way to create custom and complex buttons with custom attributes, directly added to the iOS Interface Builder, very easy to integrate into every project!

## Top 100 Coolest Super Powers:
- [x] Edit everything directly from storyboard or code 😏
- [x] Change border color, width
- [x] Customize the corner radius
- [x] Set a gradient background
- [x] Edit everything about the shadows: color, opacity, offset
- [x] Animations when the button is highlighted 🤗
- [x] Animations when the button is selected
- [x] Ripple tap effect, where you can edit ripple color and ripple speed (like a Google Material button) 😮
- [x] Toggle functionality
- [x] Image View content mode and alpha
- [x] Touch up inside closure 🤠
- [x] Loader 🤜🤛
- [x] Swift 3, 4 and Swift 5 support
- [x] **and much more**

## How it works
The library allows you to use all the features of standard UIButton with a lot of new cool features, customizable from Storyboard or from code.


Icon

First of all, drag & drop a new UIButton inside your view controller in storyboard, then set the UIButton class to PMSuperButton:


Icon

That's it! Now you are ready to customize your PMSuperButton from the `Attributes Inspector` of Interface Builder.

##### How to use Touch Up Inside closure
IBAction or addTarget() with #selector? No thanks, we have a closure for this:

```
myButton.touchUpInside {
print("This button was pressed!")
}
```

##### How to show the loader indicator
```
//Pass `false` to disable user interaction while loading is showed
myButton.showLoader(userInteraction: true)

//Hide loader
myButton.hideLoader()
```

## Requirements

- iOS 8.0+
- Xcode 10+

## CocoaPods

[CocoaPods](http://cocoapods.org) is a dependency manager for Cocoa projects. You can install it with the following command:

```bash
$ gem install cocoapods
```

To integrate PMSuperButton into your Xcode project using CocoaPods, specify it in your `Podfile`:

```ruby
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

pod 'PMSuperButton'
```

Then, run the following command:

```bash
$ pod install
```
## Carthage
----------------

[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with [Homebrew](http://brew.sh/) using the following command:

```bash
$ brew update
$ brew install carthage
```

To integrate PMSuperButton into your Xcode project using Carthage, specify it in your `Cartfile`:

```ogdl
github "pmusolino/PMSuperButton"
```

Run `carthage update` to build the framework and drag the built `PMSuperButton.framework` into your Xcode project.

## Manually

1. Download and drop ```/Sources``` folder in your project.
2. Congratulations!

## Swift compatibility
- If you use Swift 5 or higher, you can use the [latest release](https://github.com/pmusolino/PMSuperButton/releases).

- If you use Swift 4, you can use the [release 2.2.0](https://github.com/pmusolino/PMSuperButton/releases/tag/2.2.0).

- If you use Swift 3, you can use the [release 1.0.0](https://github.com/pmusolino/PMSuperButton/releases/tag/1.0.0).

## Contributing

- If you **need help** or you'd like to **ask a general question**, open an issue.
- If you **found a bug**, open an issue.
- If you **have a feature request**, open an issue.
- If you **want to contribute**, submit a pull request.

## Acknowledgements

**Made with ❤️ by [Paolo Musolino](https://github.com/pmusolino).**

***Follow me on:***
#### 💼 [Linkedin](https://www.linkedin.com/in/paolomusolino/)

#### 🤖 [Twitter](https://twitter.com/pmusolino)

#### 🌇 [Instagram](https://www.instagram.com/pmusolino/)

#### 👨🏼‍🎤 [Facebook](https://www.facebook.com/paolomusolino)

## MIT License

PMSuperButton is available under the MIT license. See the LICENSE file for more info.

Made with ❤️ by [Paolo Musolino](https://github.com/pmusolino).