Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/antondomashnev/adpuzzleanimation
Inspired by Fabric - Answers animation. Allows to "build" given view with pieces. Allows to "destroy" given view into pieces
https://github.com/antondomashnev/adpuzzleanimation
animation answers-animation carthage cocoapods puzzle
Last synced: 20 days ago
JSON representation
Inspired by Fabric - Answers animation. Allows to "build" given view with pieces. Allows to "destroy" given view into pieces
- Host: GitHub
- URL: https://github.com/antondomashnev/adpuzzleanimation
- Owner: Antondomashnev
- License: mit
- Created: 2016-02-06T12:24:31.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-06-19T09:36:17.000Z (over 8 years ago)
- Last Synced: 2024-04-29T19:42:32.103Z (7 months ago)
- Topics: animation, answers-animation, carthage, cocoapods, puzzle
- Language: Swift
- Size: 8.66 MB
- Stars: 124
- Watchers: 9
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.yml
- License: LICENSE
Awesome Lists containing this project
README
# ADPuzzleAnimation
![](https://travis-ci.org/Antondomashnev/ADPuzzleAnimation.svg?branch=master)
[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/PuzzleAnimation.svg)](https://img.shields.io/cocoapods/v/PuzzleAnimation.svg)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
[![codebeat badge](https://codebeat.co/badges/3b267dd9-2ac9-4264-8415-2f4c22e88f9a)](https://codebeat.co/projects/github-com-antondomashnev-adpuzzleanimation)## Whats inside
Custom animation for UIView inspired by Fabric - Answers animation.
## Easy to use
To create your first animation you need to know only about one method:
```swift
/**
Designated initializer for puzzle animation and it's subclasses
- parameter viewToAnimate: view to render into pieces
- parameter configuration: animation configuration
- returns: newly created animation instance
*/
init(viewToAnimate: UIView, configuration: PuzzleAnimationConfiguration = PuzzleAnimationConfiguration())
```
It's flixible - you can configure almost any parameter for the animation:
```swift
/**
* Defines the structure that contains configurable parameters for puzzle animation
*/
struct PuzzleAnimationConfiguration {/// Defines the animation velocity. Higher velocity less animation duration
var animationVelocity: NSTimeInterval = 1/// Defines the delay between each piece in piece's group animation
var pieceAnimationDelay: PuzzleAnimationDelay = defaultForwardPieceAnimationDelay/// Defines the delay between each group of pieces animation
var pieceGroupAnimationDelay: PuzzleAnimationDelay = defaultForwardPieceGroupAnimationDelay/// Defines the animation piece's scale
var animationScale: Double = 2.5/// Each piece represents square and this value represents the number of pixels of square side
var pieceSide: CGFloat = 40
}
```Handle callbacks about status to start new animation or do something else:
```swift
/// Called when animation completed, stoped or failed
/// @note You can set it any time even during the animation
public var animationCompletion: PuzzleAnimationCompletion?
```Intuitive and simple interface:
```swift
/**
Starts the animation. Makes view to animate hidden
*/
public func start()
/**
Stops the animation. Removes all pieces from superview. Makes view to animate visible
*/
public func stop()
```
For the complete example check the viewController.swift## Easy to install
### CocoaPods
To integrate ADPuzzleAnimation 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 'PuzzleAnimation', '~> 1.1.1'
```
### CarthageTo integrate ADPuzzleAnimation into your Xcode project using Carthage, specify it in your `Cartfile`:
```ogdl
github "Antondomashnev/ADPuzzleAnimation" ~> 1.1.1
```Run `carthage update` to build the framework and drag the built `ADPuzzleAnimation.framework` into your Xcode project.