Coder Social home page Coder Social logo

shapeanimation-swift's Introduction

ShapeAnimation-Swift

Vector animation framework in Swift based on SwiftGraphics for iOS 9 and OSX. With ShapeAnimation you can easily create various animations with a nice Swift based syntax.

Travis

SVG animation development with SVGKit happens on the SVG branch. ShapeAnimation-ObjC is an alternative vector animation framework in Objective-C.

Also note this project has moved to Swift 2.0 which requires Xcode 7.0 and Mac OS X 10.10.

What's included

  • ShapeView class which contains vector shape layers.

    • Helper functions to add image, text, circle, regular polygon, lines and other shapes.
    • Support gradient fill with animation.
    • Enumerate, hit-test or find layers.
  • Animation extension functions of CALayer.

    • opacityAnimation, flashAnimation, backColorAnimation
    • scaleAnimation, tapAnimation, transformAnimation
    • rotate360Degrees, rotationAnimation
    • shakeAnimation, moveAnimation, moveOnPathAnimation
    • slideToRight, slideAnimation, flipHorizontally, flipVertically
    • Layer dragging: constrainCenterToSuperview, bringOnScreen
  • Animation extension functions of CAShapeLayer.

    • strokeStartAnimation, strokeEndAnimation, lineWidthAnimation
    • strokeColorAnimation, fillColorAnimation, dashPhaseAnimation
    • switchPathAnimation
  • Group animation and cascaded animation.

    • animationGroup for the same layer
    • applyAnimations for multiple layers
    • Use the block-based function in apply() to play cascaded animations.
    • Pause, resume or stop animations.
  • Animations with customized properties

Stroke Lines Move on Path Radar Circles

Rotate Polygons Jumping Ball

Animation with Sliders Drag Layers

Usage

Please see the examples in MasterViewController.swift.

let layer1 = self.addLinesLayer(view, points:[(10.0,20.0),(150.0,40.0),(120.0,320.0)])
layer1.strokeEndAnimation().apply() {
    layer1.shakeAnimation().apply()
}

let la2 = self.addLinesLayer(view, points:points2, color: UIColor.blueColor())
lla2.scaleAnimation(from:1, to:1.1, repeatCount:3).apply(duration:0.3)

let la3 = self.addLinesLayer(view, points:points3, color: UIColor.greenColor())
la3.flashAnimation(repeatCount:6).apply()

let la4 = self.addLinesLayer(view, points:[(10.0,20.0), (150.0,40.0), (120.0,120.0)])
let a1 = la4.moveOnPathAnimation(path).setDuration(1.6)
let a2 = la4.rotate360Degrees().setRepeatCount(2)
animationGroup([a1, a2]).autoreverses().apply()

Help Wanted

All of this code is very much a work in progress. I'm adding and changing functionality as needed.

Your help wanted. Please fork this project and submit pull requests or [issues][issues]. [issues]: https://github.com/rhcad/ShapeAnimation-Swift/issues

Contributions are always welcome in the following areas:

  • Header doc comments explaining what the functions do
  • Useful animation template or application examples
  • Fix issues about animation, Swift usage rules or translations

License

ShapeAnimation-Swift is released under a BSD License. See LICENSE file for details.

FAQ

  • Could not build Objective-C module 'ShapeAnimation':
    • Quit Xcode and delete the sub folders in ~/Library/Developer/Xcode/DerivedData/.

shapeanimation-swift's People

Contributors

rhcad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shapeanimation-swift's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.