Git Product home page Git Product logo

dershowitz011 / swiftspinner Goto Github PK

View Code? Open in Web Editor NEW

This project forked from icanzilb/swiftspinner

0.0 2.0 0.0 1.18 MB

A beautiful activity indicator and modal alert written in Swift (originally developed for http://doodledoodle.io) Using blur effects, translucency, flat and bold design - all iOS 8 latest and greatest

License: MIT License

Ruby 5.02% Objective-C 3.39% Shell 24.52% Swift 67.08%

swiftspinner's Introduction

SwiftSpinner

Version License Platform

SwiftSpinner is an extra beautiful activity indicator with plain and bold style fitting iOS 8 design very well. It uses dynamic blur and translucency to overlay the current screen contents and display an activity indicator with text (or the so called “spinner”).


I developed it for my Swift app called Doodle Doodle and wanted to share it with everyone. Check the app here: http://doodledoodle.info

This is how the activity looks like (from the demo app):

SwiftSpinner Screenshot

Usage

To run the example project, clone the repo, and run pod install from the DemoApp directory first. That’ll run the demo program which shows you how the spinner looks like and what it can do.

Code samples

The simple code to get SwiftSpinner running in your own app.

  • In case you installed SwiftSpinner via CocoaPods you need to import it (add this somewhere at the top of your source code file):
    import SwiftSpinner
  • When you want to show an animated activity (eg. rings are randomly rotating around):
     SwiftSpinner.show("Connecting to satellite...")
  • If you want to show a static activity indicator (eg. a message with two complete rings around it)
    SwiftSpinner.show("Failed to connect, waiting...", animated: false)
  • When you want to hide the activity:
    SwiftSpinner.hide()

In case you want to do something after the hiding animation completes you can provide a closure to the hide() method:

    SwiftSpinner.hide({
      //do stuff
    })

That's all. If you want to change the text of the current activity, just call show(...) again, this will animate the old text into the new text.

Beyond the basics

If you are using SwiftSpinner to show an alert message you can also easily add a dismiss handler:

    SwiftSpinner.show("Connecting \nto satellite...").addTapHandler({
      SwiftSpinner.hide()
    })

Or even add a subtitle to let the user know they can tap to do stuff:

    SwiftSpinner.show("Connecting \nto satellite...").addTapHandler({
      SwiftSpinner.hide()
    }, subtitle: "Tap to hide while connecting! This will affect only the current operation.")

In case you want to adjust the font of the spinner title:

    SwiftSpinner.setTitleFont(UIFont(name: "Futura", size: 22.0))

To reset back to the default font:

    SwiftSpinner.setTitleFont(nil)

In case you want to change an arbitrary aspect of the text on screen access directly:

    SwiftSpinner.sharedInstance.titleLabel
    SwiftSpinner.sharedInstance.subtitleLabel

Finally you can show a spinner only if certain amount of time has passed (e.g. if you are downloading a file - show a message only if the operation takes longer than certain amount of time):

    SwiftSpinner.showWithDelay(2.0, title: "It's taking longer than expected")

If you call show(…) or hide() before the delay time has passed - this will clear the call to showWithDelay(…).

Requirements

There aren’t any requirements per se. As long as you got UIKit imported the spinner takes care of everything else.

Installation

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

    pod "SwiftSpinner"

In case you don’t want to use CocoaPods - just copy the file SwiftSpinner/SwiftSpinner.swift to your Xcode project.

Credit

Author: Marin Todorov

More about Marin:


iOS Animations by Tutorials, Author

iOS Animations by Emails Newsletter, Author

License

SwiftSpinner is available under the MIT license. See the LICENSE file for more info.

swiftspinner's People

Contributors

icanzilb avatar dwoodgate avatar rinatkhanov avatar gaelfoppolo avatar joseph-montanez avatar rayfix avatar dakdroid avatar

Watchers

James Cloos avatar Shantanu Desai avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.