簡單的gif圖片加載蒙版:一行代碼搞定:PTSProgressHUD
簡單的gif圖片加載蒙版:一行代碼搞定
系統支持: iOS7+,iPhone/iPad
使用效果
(添加到UIWindow)
(添加到指定的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請指正。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!