SDWebImage-CircularProgressView 0.1.2

SDWebImage-CircularProgressView 0.1.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2022年11月

Nik Kov 维护。



 
依赖
SDWebImage> 3.7.0
DACircularProgress~> 2.3
 


  • 作者
  • Nik Kov

### 由 Nik Kov 开发

大家好!)

这是一个 SDWebImage 的类别,您可以通过三种方式添加 ProgressView:

图像下载使用 SDWebImage(3.7.0 及以上版本)

屏幕截图

安装

Cocoapods:

pod 'SDWebImage-CircularProgressView'

代码示例

有两个参数和唯一的名称前缀以方便查找。

  • progressViewType - LinearPV 或 CircularPV。选择 Progress View 的类型。
  • progressView - 如果您初始化自己的 UIProgressView,则将其放在那里。它应该是 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

如果您使用 sd_cancelCurrentImageLoad 方法,则还必须调用 removeProgressView。

- (void)prepareForReuse {
    [super prepareForReuse];
    [self.imageView sd_cancelCurrentImageLoad];
    [self.imageView removeProgressView];
}

使用 DataSource 方法自定义 UIProgressView

  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. 在 self(DataSource 的类)中实现方法
- (CircularProgressViewSettings *)setupCircularProgressViewSettings
{
    CircularProgressViewSettings *circularSettings = [CircularProgressViewSettings new];
    circularSettings.progressTintColor = [UIColor redColor];
    circularSettings.thicknessRatio = 0.2;
    return circularSettings;
}

#### 自定义应用程序中的所有 UIProgressView

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

## 您应该知道

  • 它使用 SDWebImage 和 DACircularProgress。
  • CirclePV 类型默认实现为透明视图。请在 AppDelegate 或其他地方使用 appearance 来自定义它。
  • 自定义进度条优先于其他类型。否则,如果您选择 LinearPV 并添加 orCustomProgressView:(UIProgressView*)yourCustomProgressView,则它将是您的自定义进度条。

参考

受以下项目启发

待办事项