簡單的gif圖片加載蒙版:一行代碼搞定:PTSProgressHUD

jopen 9年前發布 | 39K 次閱讀 iOS開發 移動開發 PTSProgressHUD

簡單的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.baiduhome.net/lib/view/home/1449067498483

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!