简单的gif图片加载蒙版:一行代码搞定:PTSProgressHUD

jopen 9年前

简单的gif图片加载蒙版:一行代码搞定

系统支持: iOS7+,iPhone/iPad

使用效果

image (添加到UIWindow) image (添加到指定的UIView)

如何使用PTSProgressHUD

直接把PTSProgressHUD文件夹导入到工程中,然后#import "PTSProgressHUD.h",如果导入后提醒"_crc32", referenced from:错误,就在"Link Binary With Libraries"中添加libz.dylib

PTSProgressHUD.h

 @interface PTSProgressHUD : UIView    // git图片  @property (strong, nonatomic, readonly) UIImage *gifImage UI_APPEARANCE_SELECTOR;  // 文字  @property (copy, nonatomic, readonly) NSString *titleStr UI_APPEARANCE_SELECTOR;  // 文字颜色  @property (strong, nonatomic, readonly) UIColor *titleColor UI_APPEARANCE_SELECTOR;  // 文字大小  @property (strong, nonatomic, readonly) UIFont *titleSize UI_APPEARANCE_SELECTOR;  // 文字和图片间隙(默认为10间距)  @property (assign, nonatomic, readonly) CGFloat titleMargin UI_APPEARANCE_SELECTOR;  // 图片高度比例(默认为0.2,取值在-1到1之间, 值越大图片向上高度越大,反之越小越往下)  @property (assign, nonatomic, readonly) CGFloat gifImgRatio UI_APPEARANCE_SELECTOR;  // 背景颜色  @property (strong, nonatomic, readonly) UIColor *bgColor UI_APPEARANCE_SELECTOR;  // extension的view  @property (strong, nonatomic) UIView *viewForExtension UI_APPEARANCE_SELECTOR;  // 指定的view  @property (strong, nonatomic) UIView *toView UI_APPEARANCE_SELECTOR;    /**   *  设置gif图片   */  + (void)setGifImage:(UIImage *)gifImage;  /**   *  设置文字   */  + (void)setTitleStr:(NSString *)titleStr;  /**   *  设置文字颜色   */  + (void)setTitleColor:(UIColor *)titleColor;  /**   *  设置文字大小   */  + (void)setTitleSize:(UIFont *)titleSize;  /**   *  设置文字和图片间隙   */  + (void)setTitleMargin:(CGFloat)titleMargin;  /**   *  设置图片高度比例   */  + (void)setGifImgRatio:(CGFloat)gifImgRatio;  /**   *  设置背景颜色   */  + (void)setBgColor:(UIColor *)bgColor;  /**   *  设置extension的view   */  + (void)setviewForExtension:(UIView *)viewForExtension;  /**   *  设置指定的view   */  + (void)setToView:(UIView *)toView;    /**   *  添加加载指示器(全屏显示,默认gif图片,没有文字)   */  + (void)show;    /**   *  添加加载指示器(全屏显示,带文字和图片)   *   *  @param imagePath gif图片路径   *  @param title     文字   */  + (void)showWithGifImagePath:(NSString *)imagePath withTitle:(NSString *)title;    /**   *  添加加载指示器(在指定的view上面,默认gif图片,没有文字)   *   *  @param toView 添加到哪一个view上   */  + (void)showToView:(UIView *)toView;    /**   *  添加加载指示器(在指定的view上面,带文字和图片)   *   *  @param imagePath gif图片路径   *  @param title     文字   */  + (void)showWithGifImagePath:(NSString *)imagePath withTitle:(NSString *)title toView:(UIView *)toView;    /**   *  隐藏动画   */  + (void)hide;    /**   *  获取自己   */  + (PTSProgressHUD *)shareView;    /**   *  代理   */  @property (nonatomic, weak) id<PTSProgressHUDDelegate> delegate;    /**   *  block回调状态   */  @property (nonatomic, copy) PTSProgressHUDStatusBlock statusBlock;    /**   *  状态   */  @property (nonatomic, assign) PTSProgressStatus status;    @end

状态枚举

typedef NS_ENUM(NSInteger, PTSProgressStatus) {      PTSProgressStatusClickUIControl, // 点击了UIControll      PTSProgressStatusClickHudView, // 点击了HudView      PTSProgressStatusWillShowHudView, // HudView即将显示      PTSProgressStatusDidShowHudView, // HudView已经显示      PTSProgressStatusWillHideHudView, // HudView即将隐藏      PTSProgressStatusDidHideHudView, // HudView已经隐藏  };

项目中使用

1.导入PTSProgressHUD

#import "PTSProgressHUD.h"

2.展示全局蒙版(覆盖整个UIWindow)

// 添加加载指示器(全屏显示,默认gif图片,没有文字) [PTSProgressHUD show];
// 使用默认gif图片,显示文字 [PTSProgressHUD showWithGifImagePath:nil withTitle:@"正在加载"]; 

或者

// 设置自定义gif图片  [PTSProgressHUD setGifImage:[YYImage imageNamed:@"xxx.gif"]];  [PTSProgressHUD setTitleStr:@"加载中"];  [PTSProgressHUD show];

或者

// 一行代码设置自定义gif图片和文字 [PTSProgressHUD showWithGifImagePath:@"xxx.gif" withTitle:@"正在加载"];

3.展示局部蒙版(指定一个UIView)

// 一行代码设置局部蒙版 [PTSProgressHUD showWithGifImagePath:nil withTitle:@"加载中" toView:self.view];

或者

// 设置指定的view [PTSProgressHUD setToView:self.view]; // 添加加载指示器(全屏显示,默认gif图片,没有文字) [PTSProgressHUD show];

4.各种属性设置

// 文字颜色 [PTSProgressHUD setTitleColor:[UIColor grayColor]]; // 图片高度比例(默认为0.2,取值在-1到1之间, 值越大图片向上高度越大,反之越小越往下) [PTSProgressHUD setGifImgRatio:0.8];  ...

5.隐藏蒙版

[PTSProgressHUD hide];

6.代理监听

// 设置代理 [PTSProgressHUD shareView].delegate = self;
#pragma mark - PTSProgressHUDDelegate  - (void)PTSProgressHUDGetHudViewStatus:(PTSProgressStatus)status  { NSLog(@"%zi", status);  }

7.block

// block状态回调 [PTSProgressHUD shareView].statusBlock = ^ (PTSProgressStatus status) { NSLog(@"%zi", status);  };

8.更改默认图片

  • 直接把PTSProgressHUD.bundle里面的gif图片改成自己的就可以了

9.设置UIImage

  • 因为项目中使用了YYImage,所以使用"[PTSProgressHUD setGifImage:[YYImage imageNamed:@"xxx.gif"]]"时应该用YYImage而不是UIImage

注意

项目使用了YYImage,代码参考了SVProgressHUD的源码,感谢SVProgressHUD和YYImage的作者,这个项目为学习SVProgressHUD时所写的项目,如果有bug请指正。

项目主页:http://www.open-open.com/lib/view/home/1449067498483