37

GitHub - shtnkgm/ImageTransition: Library for smooth animation of images during...

 5 years ago
source link: https://github.com/shtnkgm/ImageTransition
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

ImageTransition

Build Status Carthage compatible Swift Version GitHub codebeat badge

ImageTransition is a library for smooth animation of images during transitions.

Something looks like below:

Sample

Feature

  • Transition zooming animation like the iOS Photos app and the "Pinterest", and so on
  • Easy to use (conform to ImageTransitionable protocol)
  • Swifty (protocol-oriented)
  • Animation configuration customizable (animation duration, UIView.AnimationOptions)
  • CornerRadius animation (e.g. from a round image to a square Image)

Installation

Carthage

  • Add github "shtnkgm/ImageTransition" to your Cartfile.
  • Run carthage update.

Usage

  • Import ImageTransition in Source and Destination View Controllers
import ImageTransition
  • Confirm ImageTransitionable protocol in Source and Destination View Controllers
extension SourceViewController: ImageTransitionable {
    var imageViewForTransition: UIImageView? {
        return imageView
    }
}

extension DestinationViewController: ImageTransitionable {
    var imageViewForTransition: UIImageView? {
        return imageView
    }
}
  • [present / dismiss transition] Set ImageTransitionDelegate.shared to transitioningDelegate property of Destination View Controller
    @objc private func imageViewDidTapped() {
        let destinationViewController = DestinationViewController.make()
        destinationViewController.transitioningDelegate = ImageTransitionDelegate.shared
        present(destinationViewController, animated: true, completion: nil)
    }
  • [push / pop transition] Set ImageTransitionDelegate.shared to delegate property of UINavigationContoller
    @objc private func imageViewDidTapped() {
        let destinationViewController = DestinationViewController.make()
        navigationController?.delegate = ImageTransitionDelegate.shared
        navigationController?.pushViewController(destinationViewController, animated: true)
    }

Customize

You can customize the configuration of animation.

ImageTransitionDelegate.shared.presentDuration = 0.5
ImageTransitionDelegate.shared.dismissDuration = 0.5
ImageTransitionDelegate.shared.pushDuration = 0.5
ImageTransitionDelegate.shared.popDuration = 0.5
ImageTransitionDelegate.shared.presentAnimationOptions = [.curveLinear]
ImageTransitionDelegate.shared.dismissAnimationOptions = [.curveEaseIn]
ImageTransitionDelegate.shared.pushAnimationOptions = [.curveLinear]
ImageTransitionDelegate.shared.popAnimationOptions = [.curveEaseIn]

Requirements

  • iOS 9.0 or later

Contributing

Pull requests and stars are always welcome.

For bugs and feature requests, please create an issue.

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

License

ImageTransition is released under the MIT license. See LICENSE for details.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK