Latest 0.1.1
Homepage https://github.com/NikKovV/SDWebImage-CircularProgressView
License MIT
Platforms ios 8.0, requires ARC
Dependencies SDWebImage, DACircularProgress
Frameworks UIKit
Authors

by Nik Kov

Good day everybody!)

This is a category to SDWebImage that offer you to add ProgressView in three ways:

Images are downloaded using SDWebImage (3.7.0 and up)

SCREENSHOTS

Installation

Cocoapods:

pod 'SDWebImage-CircularProgressView'

Code examples

There are two parameters and unique prefix to easier finding.

  • progressViewType – LinearPV or CircularPV. Choose the type of Progress View.
  • progressView – If you init your own UIProgressView than put it there. It should be a class or subclass of UIProgressView.
  • (void)nkv_setImageWithURL:(NSURL )url usingProgressViewType:(ProgressViewType)progressViewType orCustomProgressView:(UIProgressView )progressView;
  • (void)nkv_setImageWithURL:(NSURL )url placeholderImage:(UIImage )placeholder usingProgressViewType:(ProgressViewType)progressViewType orCustomProgressView:(UIProgressView *)progressView;
  • (void)nkv_setImageWithURL:(NSURL )url placeholderImage:(UIImage )placeholder options:(SDWebImageOptions)options usingProgressViewType:(ProgressViewType)progressViewType orCustomProgressView:(UIProgressView *)progressView;
  • (void)nkv_setImageWithURL:(NSURL )url completed:(SDWebImageCompletionBlock)completedBlock usingProgressViewType:(ProgressViewType)progressViewType orCustomProgressView:(UIProgressView )progressView;
  • (void)nkv_setImageWithURL:(NSURL )url placeholderImage:(UIImage )placeholder completed:(SDWebImageCompletionBlock)completedBlock usingProgressViewType:(ProgressViewType)progressViewType orCustomProgressView:(UIProgressView *)progressView;
  • (void)nkv_setImageWithURL:(NSURL )url placeholderImage:(UIImage )placeholder options:(SDWebImageOptions)options completed:(SDWebImageCompletionBlock)completedBlock usingProgressViewType:(ProgressViewType)progressViewType orCustomProgressView:(UIProgressView *)progressView;
  • (void)nkv_setImageWithURL:(NSURL )url placeholderImage:(UIImage )placeholder options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletionBlock)completedBlock usingProgressViewType:(ProgressViewType)progressViewType orCustomProgressView:(UIProgressView *)progressView;
    #### cancelCurrentImageLoad
    If you're using the `sd_cancelCurrentImageLoad method`, you'll also have to call removeProgressView.
  • (void)prepareForReuse {
    [super prepareForReuse];
    [self.imageView sd_cancelCurrentImageLoad];
    [self.imageView removeProgressView];
    }

Customize UIProgressView by DataSource methods

  1. #import "UIImageView+CircularProgressView.h"
  2. @interface NKVTableCell () <ProgressViewDataSource>
  3. [self.bodyImageV nkvSetProgressViewDataSource:self];
  4. [self.bodyImageV nkv_setImageWithURL:url usingProgressViewType:CircularPV orCustomProgressView:nil];
  5. In self (DataSource’s class) implement method:
    - (CircularProgressViewSettings *)setupCircularProgressViewSettings
    {
    CircularProgressViewSettings *circularSettings = [CircularProgressViewSettings new];
    circularSettings.progressTintColor = [UIColor redColor];
    circularSettings.thicknessRatio = 0.2;
    return circularSettings;
    }

    Customize all UIProgressViews in app

    [DACircularProgressView appearance].trackTintColor = [UIColor lightGrayColor];
    [DACircularProgressView appearance].progressTintColor = [UIColor blackColor];
    [UIProgressView appearance].trackTintColor = [UIColor lightGrayColor];
    [UIProgressView appearance].progressTintColor = [UIColor blackColor];

    You should know

    • It uses SDWebImage and DACircularProgress.
    • CirclePV type implements transparent view by default. Use appearance in AppDelegate or somewhere else to customize it.
    • Custom progress bar is a priority for other types. Otherwords if you choose LinearPV and then add orCustomProgressView:(UIProgressView*)yourCustomProgressView than it would be your custom ProgressView.

References

Inspired by projects:

TODO:

  • [ ] Add http://shields.io/
  • [ ] Add UIedgeInsets like property
  • [ ] Think about default settings for CircleV

Latest podspec

{
    "name": "SDWebImage-CircularProgressView",
    "version": "0.1.1",
    "summary": "Category for UIImageView. Adds circular, linear or custom progress view. Images downloading by SDWebImage.",
    "description": "Progress View to see how much left to download an Image. It can be Circular or Apples Linear progress view. You can customize colors and other properties in data source.",
    "homepage": "https://github.com/NikKovV/SDWebImage-CircularProgressView",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Nik Kov": "[email protected]"
    },
    "source": {
        "git": "https://github.com/NikKovV/SDWebImage-CircularProgressView.git",
        "tag": "0.1.1"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "Classes/*.{h,m}",
    "requires_arc": true,
    "frameworks": "UIKit",
    "dependencies": {
        "SDWebImage": [
            "> 3.7.0"
        ],
        "DACircularProgress": [
            "~> 2.3"
        ]
    }
}

Pin It on Pinterest

Share This