RSLoadingView

RSLoadingView bring your app to the new age of loading animations using 3D engine.

  • Written with Swift
  • Customizable
  • Using Apple's SceneKit with OpenGL
  • Include HUB feature: show full screen loading HUB with one line of code
  • Or use as standalone view
  • Configurable in interface builder

Requirements

  • Swift 4.0
  • iOS 9+

Demo

SpinAlone - base Variant

screenshots_normal

SpinAlone - base Variant

gif_normal-1

SpinAlone - inAndOut Variant; speedFactor = 2.0; lifeSpanFactor = 2.0; mainColor = UIColor.red

gif_twins

Twins - base Variant

gif_inout

Installation

RSLoadingView is available through CocoaPods. To install
it, simply add the following line to your Podfile:

pod "RSLoadingView"

Usage

import UIKit
import RSLoadingView

class ViewController: UIViewController {

  @IBAction func showLoadingHub() {
    let loadingView = RSLoadingView()
    loadingView.show(on: view)
  }

  @IBAction func showOnViewTwins() {
    let loadingView = RSLoadingView(effectType: RSLoadingView.Effect.twins)
    loadingView.show(on: view)
  }

  func hideLoadingHub() {
    RSLoadingView.hide(from: view)
  }

  @IBAction func showOnWindow() {
    let loadingView = RSLoadingView()
    loadingView.showOnKeyWindow()
  }

  func hideLoadingHubFromKeyWindow() {
    RSLoadingView.hideFromKeyWindow()
  }
  
}

Supported Effect

Effect Variants
RSLoadingSpinAlone base, inAndOut
RSLoadingTwins base
RSLoadingTriples (coming soon)

Customization

Loading View Related
Field Default Value
speedFactor 1.0
mainColor UIColor.white
colorVariation 0.0
sizeFactor 1.0
spreadingFactor 1.0
lifeSpanFactor 1.0
variantKey ""
HUB Related
Field Default Value
shouldDimBackground true
dimBackgroundColor UIColor.black.withAlphaComponent(0.6)
isBlocking true
shouldTapToDismiss false
sizeInContainer CGSize(width: 180, height: 180)

GitHub