{
  "name": "ARSLineProgress",
  "version": "1.0.0",
  "summary": "iOS progress bar, replacement for the default activity indicator.",
  "description": "![ARSLineProgress](http://git.arsenkin.com/ARSLineProgress/ARSLineProgress.png)\n\n# ARSLineProgress\niOS progress bar as a replacement for iOS activity indicator. This progress HUD will add some nice style touch to your application. Moreover, you can customize this progress loader through customization structure.\n\n|                Infinite               |               Success               |              Fail             |          No State Animation      |\n| ------------------------------------- | ----------------------------------- | ----------------------------- | -------------------------------- |\n| ![ARSLineProgress Infinite][Infinite] | ![ARSLineProgress Success][Success] | ![ARSLineProgress Fail][Fail] | ![ARSLineProgress NoState][NoState] |\n\n[Infinite]: http://git.arsenkin.com/ARSLineProgress/ARSLineProgress_infinite.gif\n[Success]: http://git.arsenkin.com/ARSLineProgress/ARSLineProgress_progress_with_success.gif\n[Fail]: http://git.arsenkin.com/ARSLineProgress/ARSLineProgress_progress_with_fail.gif\n[NoState]: http://git.arsenkin.com/ARSLineProgress/ARSLineProgress_without_final_animation.gif\n\n## Installation\n\n### CocoaPods\nTo install with [CocoaPods](http://cocoapods.org/), copy and paste this in your *Podfile* file:\n\n    platform :ios, '8.0'\n    pod 'ARSLineProgress', '~> 1.0'\n\n### Non-CocoaPods way\nYou can always to do the old way - just drag the source file into your projects and you are good to go.\n\n## Usage\nARSLineProgress makes it easy to use it - you have `ARSLineProgress` class, that offer you a wide range of class methods to show progress loader.\n\n###### Showing\nYou can show progress indicator in two modes: infinite and progress.\nInfinite progress will be shown until you hide it.\n``` Swift\nclass func show()\nclass func showWithPresentCompetionBlock(block: () -> Void)\nclass func showOnView(view: UIView)\nclass func showOnView(view: UIView, completionBlock: () -> Void)\n\nclass func hide()\nclass func hideWithCompletionBlock(block: () -> Void)\n```\n\nProgress indicator will be shown until the `NSProgress` object has the `fractionCompleted` value `1.0` or in case you have passed raw value - `100.0`.\n\n``` Swift\nclass func showWithProgressObject(progress: NSProgress)\nclass func showWithProgressObject(progress: NSProgress, completionBlock: (() -> Void)?)\nclass func showWithProgressObject(progress: NSProgress, onView: UIView)\nclass func showWithProgressObject(progress: NSProgress, onView: UIView, completionBlock: (() -> Void)?)\n\n// Updating progress in case you are using on of the methods above:\nclass func updateWithProgress(value: CGFloat)\n\n// initialValue should be from 0 to 100 in these methods\nclass func showWithProgress(initialValue value: CGFloat)\nclass func showWithProgress(initialValue value: CGFloat, completionBlock: (() -> Void)?)\nclass func showWithProgress(initialValue value: CGFloat, onView: UIView)\nclass func showWithProgress(initialValue value: CGFloat, onView: UIView, completionBlock: (() -> Void)?)\n```\n\n###### Hiding\nHiding progressHUD is can be similar to what you have done so far with the infinite loader, or you could use these dedicated methods:\n\n``` Swift\nclass func cancelPorgressWithFailAnimation(showFail: Bool)\nclass func cancelPorgressWithFailAnimation(showFail: Bool, completionBlock: (() -> Void)?)\n```\n\n## Customization\nYou can customize progressHUD through the `ARSLineProgressConfiguration` structure, that offers you a wide range of customization. Any changes are going to be visible only if you have set them before showing preloader, otherwise they are going to be visible during your next show of preloader.\n\nOnce you changed your mind and you want to restore ARSLineProgressConfiguration to its default parameters - use `static func restoreDefaults()` method.\n\n## Other\nARSLineProgress automatically responds to orientation changes, so it always going to be centered on the screen.\n\n## License\nARSLineProgress is released under the [MIT license](http://opensource.org/licenses/MIT). See LICENSE for details.",
  "homepage": "https://github.com/soberman/ARSLineProgress",
  "license": {
    "type": "MIT",
    "file": "LICENSE"
  },
  "authors": {
    "Yarik Arsenkin": "info@arsenkin.com"
  },
  "social_media_url": "http://twitter.com/Soberman777",
  "platforms": {
    "ios": "8.0"
  },
  "source": {
    "git": "https://github.com/soberman/ARSLineProgress.git",
    "tag": "1.0.0"
  },
  "source_files": "Source/ARSLineProgress.swift",
  "exclude_files": "Demo/*",
  "requires_arc": true
}
