# ADPuzzleAnimation

[](https://img.shields.io/cocoapods/v/PuzzleAnimation.svg)
[](https://github.com/Carthage/Carthage)
[](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'
```
### Carthage
To 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.