All Projects → shtnkgm → Imagetransition

shtnkgm / Imagetransition

Licence: mit
Library for smooth animation of images during transitions.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Imagetransition

Transitionbutton
UIButton sublass for loading and transition animation.
Stars: ✭ 1,124 (+476.41%)
Mutual labels:  cocoapods, carthage, transition-animation
Bluetoothkit
Easily communicate between iOS/OSX devices using BLE
Stars: ✭ 2,027 (+939.49%)
Mutual labels:  cocoapods, carthage
Forecastio
A Swift library for the Forecast.io Dark Sky API
Stars: ✭ 164 (-15.9%)
Mutual labels:  cocoapods, carthage
Svprogresshud
A clean and lightweight progress HUD for your iOS and tvOS app.
Stars: ✭ 12,339 (+6227.69%)
Mutual labels:  cocoapods, carthage
Zkudid
Generate and save permanent UDID with IDFV and keychain in iOS device.
Stars: ✭ 159 (-18.46%)
Mutual labels:  cocoapods, carthage
Bluetonium
Bluetooth mapping in Swift
Stars: ✭ 159 (-18.46%)
Mutual labels:  cocoapods, carthage
Ktvhttpcache
A powerful media cache framework.
Stars: ✭ 2,113 (+983.59%)
Mutual labels:  cocoapods, carthage
Heapinspector For Ios
Find memory issues & leaks in your iOS app without instruments
Stars: ✭ 1,819 (+832.82%)
Mutual labels:  cocoapods, carthage
Wkcookiewebview
WKWebView with cookie sharing support
Stars: ✭ 171 (-12.31%)
Mutual labels:  cocoapods, carthage
Irldocumentscanner
A drop-in Objective-C ViewController that will Automatically scan a document for you you.
Stars: ✭ 172 (-11.79%)
Mutual labels:  cocoapods, carthage
Whatsnewkit
Showcase your awesome new app features 📱
Stars: ✭ 2,329 (+1094.36%)
Mutual labels:  cocoapods, carthage
Cdmarkdownkit
An extensive Swift framework providing simple and customizable markdown parsing.
Stars: ✭ 158 (-18.97%)
Mutual labels:  cocoapods, carthage
Apesuperhud
A simple way to display a HUD with a message or progress information in your application.
Stars: ✭ 156 (-20%)
Mutual labels:  cocoapods, carthage
Kvkcalendar
A most fully customization calendar and timeline library for iOS 📅
Stars: ✭ 160 (-17.95%)
Mutual labels:  cocoapods, carthage
Underlinetextfield
Simple UITextfield Subclass with state
Stars: ✭ 156 (-20%)
Mutual labels:  cocoapods, carthage
Multipeer
📱📲 A wrapper for the MultipeerConnectivity framework for automatic offline data transmission between devices
Stars: ✭ 170 (-12.82%)
Mutual labels:  cocoapods, carthage
L10n Swift
Localization of the application with ability to change language "on the fly" and support for plural form in any language.
Stars: ✭ 177 (-9.23%)
Mutual labels:  cocoapods, carthage
Auth0.swift
Swift toolkit for Auth0 API
Stars: ✭ 146 (-25.13%)
Mutual labels:  cocoapods, carthage
Sdl ios
Get your app connected to the 🚙, make your users feel like a 🌟
Stars: ✭ 147 (-24.62%)
Mutual labels:  cocoapods, carthage
Cocoalumberjack
A fast & simple, yet powerful & flexible logging framework for Mac and iOS
Stars: ✭ 12,584 (+6353.33%)
Mutual labels:  cocoapods, carthage

ImageTransition

Build Status Cocoapods Carthage compatible Swift Version GitHub codebeat badge

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

Something looks like below:

e.g. UIImageView e.g. UIImageView in UICollectionView
sample_01.gif sample_02.gif

Feature

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

Installation

Carthage

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

CocoaPods

  • Add pod 'ImageTransition' to your podfile.
  • Run pod update.

Usage

  • Confirm ImageTransitionable protocol
// Source UIViewController
import ImageTransition
extension SourceViewController: ImageTransitionable {
    var imageViewForTransition: UIImageView? {
        return imageView
    }
}
// Destination UIViewController
import ImageTransition
extension DestinationViewController: ImageTransitionable {
    var imageViewForTransition: UIImageView? {
        return imageView
    }
}
  • Set Delegate
    // present / dismiss transition
    @objc private func imageViewDidTapped() {
        let destinationViewController = DestinationViewController.make()
        destinationViewController.transitioningDelegate = ImageTransitionDelegate.shared
        present(destinationViewController, animated: true, completion: nil)
    }

    // push / pop transition
    @objc private func imageViewDidTapped() {
        let destinationViewController = DestinationViewController.make()
        // Set ImageTransitionDelegate.shared to `delegate` property of UINavigationContoller
        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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].