All Projects → ayman-ibrahim → Processloadingview

ayman-ibrahim / Processloadingview

Licence: mit
ProcessLoadingView is a step indicator loading animation built using CABasicAnimation

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Processloadingview

Open C Book
开源书籍:《C语言编程透视》,配套视频课程《360° 剖析 Linux ELF》已上线,视频讲解更为系统和深入,欢迎订阅:https://www.cctalk.com/m/group/88089283
Stars: ✭ 715 (+184.86%)
Mutual labels:  process, loader
Vue Element Loading
⏳ Loading inside a container or full screen for Vue.js
Stars: ✭ 234 (-6.77%)
Mutual labels:  loader
React Redux Webpack Starter
Learning react
Stars: ✭ 189 (-24.7%)
Mutual labels:  loader
Style Resources Loader
CSS processor resources loader for webpack
Stars: ✭ 214 (-14.74%)
Mutual labels:  loader
Teensystep
Fast Stepper Motor Library for Teensy boards
Stars: ✭ 191 (-23.9%)
Mutual labels:  stepper
Human Signals
Human-friendly process signals
Stars: ✭ 223 (-11.16%)
Mutual labels:  process
Webpack2 Lessons
📖《webpack2 包教不包会》
Stars: ✭ 187 (-25.5%)
Mutual labels:  loader
W7 Rangine Empty
软擎是基于 Php 7.2+ 和 Swoole 4.4+ 的高性能、简单易用的开发框架。支持同时在 Swoole Server 和 php-fpm 两种模式下运行。内置了 Http (Swoole, Fpm),Tcp,WebSocket,Process,Crontab服务。集成了大量成熟的组件,可以用于构建高性能的Web系统、API、中间件、基础服务等等。
Stars: ✭ 246 (-1.99%)
Mutual labels:  process
Is Loading
Simple library to show visual feedback when loading data or any action that would take time
Stars: ✭ 232 (-7.57%)
Mutual labels:  loader
Materialize Stepper
A little plugin that implements a stepper to Materializecss framework.
Stars: ✭ 212 (-15.54%)
Mutual labels:  stepper
Awesome Typescript Loader
Awesome TypeScript loader for webpack
Stars: ✭ 2,357 (+839.04%)
Mutual labels:  loader
Pywavefront
Python library for importing Wavefront .obj files
Stars: ✭ 189 (-24.7%)
Mutual labels:  loader
React Native Skeleton Content
A customizable skeleton-like loading placeholder for react native projects using expo.
Stars: ✭ 221 (-11.95%)
Mutual labels:  loader
Materialstepperview
Steppers - Material Design Components for Android
Stars: ✭ 2,187 (+771.31%)
Mutual labels:  stepper
Rhplaceholder
Show pleasant loading view for your users 😍
Stars: ✭ 238 (-5.18%)
Mutual labels:  loader
Swoft Im
基于swoft-cloud的微服务架构,最小化拆分粒度,PHP7、多进程、协程、异步任务、mysql连接池、redi连接池、rpc连接池、服务治理、服务注册与发现、Aop切面、全注解
Stars: ✭ 189 (-24.7%)
Mutual labels:  process
Htop
htop - an interactive process viewer
Stars: ✭ 3,076 (+1125.5%)
Mutual labels:  process
React Loading Overlay
Loading overlays with fade, spinner, message support.
Stars: ✭ 218 (-13.15%)
Mutual labels:  loader
React Native Pulse Loader
tinder-like loader for your react native app
Stars: ✭ 250 (-0.4%)
Mutual labels:  loader
Tmcstepper
Stars: ✭ 237 (-5.58%)
Mutual labels:  stepper

ProcessLoadingView

Pod Version Pod License Language Swift version

ProcessLoadingView is a step indicator loading animation built using CABasicAnimation , where the user can nearly customize everything in it:
inspired from: https://dribbble.com/shots/1118077-Proces-animation

Features

  • [x] light weight easy to setup.
  • [x] completely customizable.
  • [x] dynamic number of items can be set .
  • [x] capability of setting custom locations of the items in the circumference .
  • [x] ability to set different image for every item.
  • [x] capability of setting different attributes regarding the colors, fonts and the speed of the progress.
Predfined locations in circumference Setting variable number of items (8)

Installation

CocoaPods

ProcessLoadingView is available on CocoaPods. Add the following to your Podfile:

pod 'ProcessLoadingView', '~> 0.1.2'

Manually

Just add the processView folder to your project.

Usage

(see sample Xcode project Demo) create a view in the storyboard and give it's class 'ProcessLoadingView' then connect an outlet to it.

Fast Setup

ProcessLoadingView can have variable number of items based on your need, you only need the following steps to get it runing:

1- put a UIView in your storyboard and give it a class ProcessLoadingView. Alt Text

2- connect an outlet to it, call it viewProcess

3- create options object and assign it to viewProcess :

let stepComplete = 3
let totalSteps = 4
        
var options = ProcessOptions()
options.setNumberOfItems(number: totalSteps)
options.images = [(img1, nil), (img2, nil), (img3, nil), (img4, nil)]
options.stepComplete = stepComplete
options.bgColor = bgColor
viewProcess.options = options

note

  • set the number of process steps through options's setNumberOfItems method.
  • options.images should be assigned an array it's count equals to the total number of steps.

Full customization of processView

//totalSteps: adding 8 process items, this number can be increased or decreased ;) 
let totalSteps = 8
var options = ProcessOptions()
options.setNumberOfItems(number: totalSteps)
options.stepComplete = 3
options.inSpeed = 1.2
options.images = imageOpts(of: step, totalSteps: totalSteps)
options.mainTextfont = UIFont.boldSystemFont(ofSize: 22)
options.subTextfont = UIFont.boldSystemFont(ofSize: 16)
options.ItemSize = 30
options.radius = 120
options.bgColor = bgColor
options.completedPathColor = colorBlue
options.mainTextColor = .white
options.subTextColor = colorOrange
        
viewProcessOutlet.options = options

If you want a custom places on the circle shape, do not use this method :

options.setNumberOfItems(number: totalSteps)

and use:

var options = ProcessOptions()
let curvesStartRadians = [(3 * CGFloat.pi)/2, (23 * CGFloat.pi) / 12, (CGFloat.pi / 3), ((2 * CGFloat.pi) / 3), (13 * CGFloat.pi) / 12]
let curvesEndRadians   = [(23 * CGFloat.pi) / 12, (CGFloat.pi) / 3, (2 * CGFloat.pi) / 3, (13 * CGFloat.pi) / 12, (3 * CGFloat.pi)/2]

options.curvesStartRadians = curvesStartRadians
options.curvesEndRadians = curvesEndRadians

options.stepComplete = 3
options.inSpeed = 1.2
options.images = imageOpts(of: step, totalSteps: curvesStartRadians.count)
options.mainTextfont = UIFont.boldSystemFont(ofSize: 22)
options.subTextfont = UIFont.boldSystemFont(ofSize: 16)
options.ItemSize = 30
options.radius = 120
options.bgColor = bgColor
options.completedPathColor = colorBlue
options.mainTextColor = .white
options.subTextColor = colorOrange
        
viewProcessOutlet.options = options

To get the locations in the circle circumference:

Alt Text

ProcessView action methods

To start Animation:

viewProcess.start(completed:
{
     //code to run after finishing
})

Reverse animation without removing the items:

viewProcess.reset(removeItems: false)
{
     //code to run after finishing
}

Reverse animation then removing the items:

viewProcess.reset(removeItems: true)
{
     //code to run after finishing
}

License

This code is distributed under the terms and conditions of the MIT license.

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].