37
GitHub - shtnkgm/ImageTransition: Library for smooth animation of images during...
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
ImageTransition is a library for smooth animation of images during transitions.
Something looks like below:
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.
- Fork it!
- Create your feature branch: git checkout -b my-new-feature
- Commit your changes: git commit -am 'Add some feature'
- Push to the branch: git push origin my-new-feature
- Submit a pull request :D
Author
- @shtnkgm / Shota Nakagami
License
ImageTransition is released under the MIT license. See LICENSE for details.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK