Skip to content
This repository has been archived by the owner on Dec 6, 2023. It is now read-only.

A customizable animated button inspired by the familiar button stack from Tinder

License

Notifications You must be signed in to change notification settings

mac-gallagher/PopBounceButton

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PopBounceButton

Swift-Version CocoaPods license CocoaPods

About

A customizable animated button built with Facebook's Pop animation library. Inspired by the familiar button stack from Tinder.

Features

  • Lightweight and highly customizable
  • Animations for multiple UIControlEvents
  • Pure Swift 4

Example

To run the example project, clone the repo and run the PopBounceButton-Example target.

TinderDemo

MessageButtonExample

Requirements

  • iOS 9.0+
  • Xcode 9.0+
  • Swift 4.0+

Installation

CocoaPods

PopBounceButton is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'PopBounceButton'

Manual

  1. Download and drop the PopBounceButton directory into your project.
  2. Install Facebook's Pop library.

Contributing

  • If you found a bug, open an issue and tag as bug.
  • If you have a feature request, open an issue and tag as feature.
  • If you want to contribute, submit a pull request.
    • In order to submit a pull request, please fork this repo and submit a pull request from your forked repo.
    • Have a detailed message as to what your pull request fixes/enhances/adds.

Quick Start

  1. Add a PopBounceButton to your view.

    let frame = CGRect(origin: .zero, size: CGSize(width: 100, height: 100))
    let button = PopBounceButton(frame: frame)
    view.addSubview(button)
  2. Attach a target to your button to handle any events.

    button.addTarget(self, action: #selector(handleTap), for: .touchUpInside)
    @objc func handleTap(_ sender: PopBounceButton) {
        //do something
    }

Customization

Because PopBounceButton is a subclass of UIButton, it can be customized in the same way. The button's animations can be changed by modifying the following variables exposed by PopBounceButton:

var springBounciness: CGFloat = 19.0
var springSpeed: CGFloat = 10.0
var springVelocity: CGFloat = 6.0

var cancelTapScaleDuration: TimeInterval = 0.3

var longPressScaleFactor: CGFloat = 0.7
var longPressScaleDuration: TimeInterval = 0.1
var minimumPressDuration: TimeInterval = 0.2

Sources

  • Pop: Facebook's iOS animation framework.

Author

Mac Gallagher, jmgallagher36@gmail.com

License

PopBounceButton is available under the MIT License, see LICENSE for more infomation.