MBProgressHUD

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MBProgressHUD相关的知识,希望对你有一定的参考价值。

1.+ (MB_INSTANCETYPE)showHUDAddedTo:(UIView *)view animated:(BOOL)animated;

 创建一个新的HUD,并把它添加并显示到提供的视图上.与之相对应的方法是 hideHUDForView:animated:.

 @note 这个方法会设置HUD的属性`removeFromSuperViewOnHide`为YES.HUD会在隐藏时自动从父视图上移除.

 @param view 将HUD添加到此视图上.

 @param animated YES,显示时使用当前的动画类型显示;NO,直接显示不使用动画效果.

 @return 新创建的HUD.

 @see hideHUDForView:animated:

 @see animationType   

 2.+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated;

 找到并隐藏子视图最顶层的HUD.与之对应的方法是 showHUDAddedTo:animated:.

 @note 这个方法会设置HUD的属性`removeFromSuperViewOnHide`为YES.HUD会在隐藏时自动从父视图上移除.

 @param view 用来在其子视图中查找HUD的视图.

 @param animated YES,隐藏时使用当前的动画类型显示;NO,直接隐藏不使用动画效果.

 @return YES,如果某个HUD被找到并被移除;否则返回NO.

 @see showHUDAddedTo:animated:

@see animationType

3.+ (NSUInteger)hideAllHUDsForView:(UIView *)view animated:(BOOL)animated;

找到子视图中所有的HUD,并隐藏.

@note 这个方法会设置HUD的属性`removeFromSuperViewOnHide`为YES.HUD会在隐藏时自动从父视图上移除.

@param view 用来在其子视图中查找HUD的视图.

@param animated YES,隐藏时使用当前的动画类型显示;NO,直接隐藏不使用动画效果.

@return 找到并移除的HUD的数量.

@see hideHUDForView:animated:

@see animationType

4、+ (MB_INSTANCETYPE)HUDForView:(UIView *)view;

找到并返回子视图最顶层的HUD.

@param view 用来在其子视图中查找HUD的视图.

@return 子视图最顶层的HUD.

5、+ (NSArray *)allHUDsForView:(UIView *)view;

 找到并返回子视图中所有的HUD.

@param view 用来在其子视图中查找HUD的视图.

@return 所有找到的HUD视图(存储 MBProgressHUD 对象的数组).

6、  - (id)initWithWindow:(UIWindow *)window;

 使用屏幕尺寸创建HUD的便利初始化方法.

@param window 提供边框值以初始化HUD的窗口.应该和HUD未来的父视图相同(比如,创建 HUD 后,将HUD添加到此窗口上).

7.   - (id)initWithView:(UIView *)view;

 使用指定视图的边框尺寸创建HUD的便利初始化方法.

 @param view 提供边框值以初始化HUD的视图.应该和HUD未来的父视图相同(比如,创建 HUD 后,将HUD添加到此视图上).

8.  - (void)show:(BOOL)animated;

显示HUD.你需要确保调用此方法时,主线程未被其他任务阻塞,以便于更新视图.当你已经在新的线程中开始(比如,使用NSOperation或者NSURLRequest的异步请求等)执行某个任务后,再执行此方法.

@param animated YES,显示时使用当前的动画类型显示;NO,直接显示不使用动画效果. *

@see animationType

9. - (void)hide:(BOOL)animated;

隐藏HUD.这个仍然会去尝试调用代理的hudWasHidden:方法.此方法是 show: 的配对方法.当你的任务完成时,再使用它.

@param animated YES,隐藏时使用当前的动画类型显示;NO,直接隐藏不使用动画效果.

@see animationType

10.- (void)hide:(BOOL)animated afterDelay:(NSTimeInterval)delay;

 延时隐藏HUD.这个仍然会去尝试调用代理的hudWasHidden:方法.此方法是 show: 的配对方法.当你的任务完成时,再使用它.

 @param animated YES,隐藏时使用当前的动画类型显示;NO,直接隐藏不使用动画效果.

 @param delay Delay in seconds until the HUD is hidden.

 @see animationType

11.   - (void)showWhileExecuting:(SEL)method onTarget:(id)target withObject:(id)object animated:(BOOL)animated;

 #if NS_BLOCKS_AVAILABLE

当在新线程执行某个后台任务时,显示HUD;任务完成时,自动隐藏HUD.

这个方法会处理自动释放池的相关技术细节,所以你可以安全使用它.

 @param method HUD显示期间,被执行的方法.这个方法会在一个新的线程中执行.

 @param target HUD显示期间,被调用的方法归属的实例对象.

 @param object 用来传递给方法的可选对象.

 @param animated YES,HUD使用当前的 animationType 动画类型来显示或隐藏;否则,显示或隐藏时不使用动画效果.

  animations while (dis)appearing.

12.- (void)showAnimated:(BOOL)animated whileExecutingBlock:(dispatch_block_t)block;

当在后台队列中执行block时,显示HUD;并在block执行完毕后,隐藏HUD.

@see showAnimated:whileExecutingBlock:onQueue:completionBlock:

13.- (void)showAnimated:(BOOL)animated whileExecutingBlock:(dispatch_block_t)block completionBlock:(MBProgressHUDCompletionBlock)completion;

  当在后台队列中执行block时,显示HUD;并在block执行完毕后,隐藏HUD.

 @see showAnimated:whileExecutingBlock:onQueue:completionBlock:

14.   - (void)showAnimated:(BOOL)animated whileExecutingBlock:(dispatch_block_t)block onQueue:(dispatch_queue_t)queue;

 当在后台队列中执行block时,显示HUD;并在block执行完毕后,隐藏HUD.

 @see showAnimated:whileExecutingBlock:onQueue:completionBlock:

15.  - (void)showAnimated:(BOOL)animated whileExecutingBlock:(dispatch_block_t)block onQueue:(dispatch_queue_t)queue

            completionBlock:(MBProgressHUDCompletionBlock)completion;

 当在一个指定的队列中执行block时,显示HUD;block执行完毕后在主线程执行completion block;然后隐藏HUD.

@param animated YES,HUD使用当前的 animationType 动画类型来显示或隐藏;否则,显示或隐藏时不使用动画效果.

 @param block HUD显示期间执行的block.

@param queue block在此队列中执行.

 @param completion 完成时执行的block.

 @see completionBlock

[email protected] (copy) MBProgressHUDCompletionBlock completionBlock;

 HUD完全隐藏后执行的block.

17.  @property (assign) MBProgressHUDMode mode;

MBProgressHUD 操作模式. 默认是 MBProgressHUDModeIndeterminate.

@see MBProgressHUDMode

18.  @property (assign) MBProgressHUDAnimation animationType;

 HUD显示和隐藏时使用的动画类型.

@see MBProgressHUDAnimation

19. @property (MB_STRONG) UIView *customView;

HUD处于MBProgressHUDModeCustomView模式时,显示此自定义视图(比如一个 UIImageView).

最好设置自定义视图宽高为 37x37(这是HUD内建指示器的边框值).

[email protected] (MB_WEAK) id<MBProgressHUDDelegate> delegate;

 HUD代理对象.

@see MBProgressHUDDelegate

21.    @property (copy) NSString *labelText;

状态指示器下可选显示的短消息.HUD会自动调整文字的尺寸. 如果文字过长,后面会用"..."代替.

[email protected] (copy) NSString *detailsLabelText;

可选显示在labelText的细节文字信息.支持多行显示.

[email protected] (assign) float opacity;

HUD的不透明度.默认是0.8.

[email protected] (MB_STRONG) UIColor *color;

 HUD的颜色.默认黑色.设置此值后, opacity属性的值将不再使用,因为颜色也可以设置透明度.

25. @property (assign) float xOffset;

 HUD相对于父视图中心点的水平偏移量.

[email protected] (assign) float yOffset;

HUD相对于父视图中心点的垂直偏移量

[email protected] (assign) float margin;

 HUD边缘与HUD的元素之间(比如标签,指示器,自定义视图等)的空白距离.

默认 20.0

[email protected] (assign) float cornerRadius;

HUD圆角半径,默认10.0.

[email protected] (assign) BOOL dimBackground;

 是否给父视图添加一个放射线样式的遮罩层.默认NO.

[email protected] (assign) float graceTime;

用于指定某个方法执行一段时间之后再显示HUD,以秒记.如果方法在这段时间之前就执行完成,就不再显示HUD.

这主要是为了优化耗时可能极短的任务的体验.

 默认值为 0.

这个属性仅在可以任务的状态可以知晓时,才有作用.

 @see taskInProgress

[email protected] (assign) float minShowTime;

HUD显示的最小时间(以秒记.)

这可以避免HUD刚一显示立即又隐藏所带来的不好的用户体验.

 默认是 0.

32.  @property (assign) BOOL taskInProgress;

指示被执行的操作是否还在执行. graceTime 属性依赖于这个属性.

如果你没有设置graceTime(和设置为0.0不同),这个属性没有任何作用.

当使用showWhileExecuting:onTarget:withObject:animated:时,这个值会被自动设置.

当直接使用show:或hide:等方法显示或隐藏HUD时,你应该手动设置taskInProgress 属性的值,以保证 graceTime 能正确发挥作用.

33.  @property (assign) BOOL removeFromSuperViewOnHide;

HUD隐藏时,是否从父视图中移除.

 默认 NO.

[email protected] (MB_STRONG) UIFont* labelFont;

 用于主标签的字体值.

[email protected] (MB_STRONG) UIColor* labelColor;

主标签颜色值.

[email protected] (MB_STRONG) UIFont* detailsLabelFont;

详情标签字体值.

[email protected] (MB_STRONG) UIColor* detailsLabelColor;

详情标签颜色.

[email protected] (MB_STRONG) UIColor *activityIndicatorColor;

指示器颜色.默认 [UIColor whiteColor]

[email protected] (assign) float progress;

进度指示器的颜色,可选 0.0 ~ 1.0,默认0.0.

[email protected] (assign) CGSize minSize;

 HUD面板的最小尺寸.默认 CGSizeZero.

[email protected] (atomic, assign, readonly) CGSize size;

 HUD面板的实际尺存,只读.

 你可以使用它来限制HUD的可点击区域.

@see https://github.com/jdg/MBProgressHUD/pull/200

42.  @property (assign, getter = isSquare) BOOL square;

 是否强制设置HUD为正方形,默认NO.

43.  - (void)hudWasHidden:(MBProgressHUD *)hud;

 HUD完全从屏幕中隐藏时调用此方法.

44.   @interface MBRoundProgressView : UIView

  一个饼状图样式的进图指示视图.

[email protected] (nonatomic, assign) float progress;

进度 (0.0 to 1.0)

[email protected] (nonatomic, MB_STRONG) UIColor *progressTintColor;

 进度指示器颜色.默认 [UIColor whiteColor].

47. @property (nonatomic, MB_STRONG) UIColor *backgroundTintColor;

 进度指示的背景部分的颜色.

 默认白色半透(透明度0.1)

[email protected] (nonatomic, assign, getter = isAnnular) BOOL annular;

     @end

显示模式.NO,圆形;YES,环形.默认圆形.

[email protected] MBBarProgressView : UIView

一个水平进度条视图.

50.  @property (nonatomic, assign) float progress;

 进度 (0.0 to 1.0)

51.    @property (nonatomic, MB_STRONG) UIColor *lineColor;

进度条边框线的颜色.

 默认白色 [UIColor whiteColor]

52.   @property (nonatomic, MB_STRONG) UIColor *progressRemainingColor;

进度条背景色.

 默认是 [UIColor clearColor];

53.  @property (nonatomic, MB_STRONG) UIColor *progressColor;

 进度的颜色.

 默认 [UIColor whiteColor].

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

    

 

 

 

 

 

 

 

 

 

 

 

   

 

 

 

 

 

 

 

 

 

 

   

  

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

    

    

 

以上是关于MBProgressHUD的主要内容,如果未能解决你的问题,请参考以下文章

iOS 源代码分析 --- MBProgressHUD

如何使用swift的MBProgressHUD

MBProgressHUD 崩溃“MBProgressHUD 初始化程序中使用的视图为零”

MBProgressHUD的基本使用

iOS - 全局更改 MBProgressHUD 设计

滚动视图和 MBProgressHUD