文章来源:淘论文网   发布者: 毕业设计   浏览量: 26



还可以点击去查询以下关键词:
[BRReminderHUD]    [一款]    [毕业]    [功能]    [ReminderView]    [BRReminderHUD 一款多毕业功能HUD和ReminderView]   

2016-12-26 17:54 上传

点击文件名下载附件

为了满足现在的多元化啊等等等元素(其实是为了装X),写了一个HUD框架,功能还算不少(其实不多),效果看首页,接下来介绍怎么用。很多时候我们用HUD的用途很简单,就是在Window上想要显示一句话,提醒一下会员,开题报告,你XXX成功了,你XXX失败了,App正在OOO,差不多就这样。
所以说,首先给使用者提供了两个比较方便的东西,写好的类目,在UIVIew类里面可以直接self.来调用,在Controller里面可以直接self.view来调用。
接下来(开始装X):
首先引用UIView的类目文件,用来快速调用BR_HUDView。
”UIView+BR_HUD.h“也就是这个
里面可以看见

#define BR_SuccessImage @'BR_Success.png' #define BR_ErrorImage @'BR_Error.png' #define BR_NoNetWorkImage @'BR_Error.png' #define BR_DefaultSize CGSizeMake(30, 30) #define BR_LoadingPrompt @'正在加载...' #define BR_SuccessPrompt @'加载成功!' #define BR_ErrorPrompt @'加载失败!' #define BR_NoNetWorkPrompt @'没有找到网络连接...' #define BR_PromptCenter CGPointMake([UIScreen mainScreen].bounds.size.width / 2.0, [UIScreen mainScreen].bounds.size.height * 0.75) #define BR_DefaultDelayed 1 /// 默认的延迟隐藏时间

这些东西就是调用的时候的默认值,更改这些,项目里面使用的地方的默认值就都会更改咯。

啥玩意?你说以前调用太麻烦?
那么我们这样

/** 显示默认的状态 */ @property (assign , nonatomic) BR_LoadState loadingState;

瞅着这个属性没,我们来改变一下他,啥?你不知道改成啥?来来来,看下面。

BR_LoadStateLoading = 0, /// 显示默认的加载 BR_LoadStateSuccess = 1, /// 显示默认的成功 BR_LoadStateError = 2, /// 显示默认的错误 BR_LoadStateNoNetWork = 3, /// 显示默认的没有网络 BR_LoadStateHide = 4, /// 隐藏HUD

直接改成这个枚举值就可以显示在宏里面设定好的样式了。
啥玩意儿?你又说图片难看,那你自己去改咯。

把Error和Success这两个图片替换成同名图片就可以了,默认的图片就会更改,或者你可以把宏定义里面的图片直接改成你想要用的图片名。
有的时候我们也会需求显示许多不同的文字,比如@"老司机快开车",@"老司机带带我",那么我们这样

/** 显示加载条,默认的图片,上方的宏定义。 @param prompt 提示内容 */ - (void)showLoading : (NSString *)prompt; /** 显示错误提示,默认的图片。 @param prompt 提示内容 */ - (void)showError : (NSString *)prompt; /** 显示成功提示,默认的图片。 @param prompt 提示内容 */ - (void)showSuccess : (NSString *)prompt; /** 显示纯文字提示 @param prompt 提示内容 */ - (void)showPrompt : (NSString *)prompt; /** 显示gif图片和提示内容 @param gifName gif图片 @param prompt 提示内容 */ - (void)showGif : (NSString *)gifName Size : (CGSize)size Prompt : (NSString *)prompt;

这里有许多方法,不过这些方法都是单例调用,不可以重复显示,属于一对一服务。
啥?就没有多对一服务?真low!那不可能(MDZZ),你想要多少对一都可以,因为我们有重用池啊。
"BR_ReuseHUDView"这个就是我们的重用池类(其实就是写了个简单的判断复用的东西,非常low。),高大上,可以避免空间浪费,当然,快速调用的时候可以不用他,我们直接来调用方法就可以。

/** 重用机制,显示到view上,非固定window @param customView 自定义的View @param prompt 提示内容 */ - (void)showHUDWithCustomView : (UIView *)customView Size : (CGSize)size Prompt : (NSString *)prompt; /** 重用机制,显示到view上,非固定window @param customView 自定义的View @param prompt 提示内容 @param hudBlock 返回hudView */ - (void)showHUDWithCustomView : (UIView *)customView Prompt : (NSString *)prompt Size : (CGSize)size HudBlock : (BRHudBlock)hudBlock; /// 重用机制,显示到view上,非固定window - (void)showPrompt : (NSString *)prompt HudBlock : (BRHudBlock)hudBlock; /// 重用机制,显示到view上,非固定window - (void)showError : (NSString *)prompt HudBlock : (BRHudBlock)hudBlock; /// 重用机制,开题报告,显示到view上,非固定window - (void)showSuccess : (NSString *)prompt HudBlock : (BRHudBlock)hudBlock; /// 重用机制,显示到view上,非固定window - (void)showLoading : (NSString *)prompt HudBlock : (BRHudBlock)hudBlock; /// 重用机制,显示到view上,非固定window - (void)showGif : (NSString *)gifName Size : (CGSize)size Prompt : (NSString *)prompt HudBlock : (BRHudBlock)hudBlock;

这些方法,就是使用重用机制创建出来的HUDView来显示提示等等等等东西,也就是传说中的可以多对一。
注意:既然是多对一,肯定有缺点,我们的这套HUDView里面有使用“FLAnimatedImage”这个Gif图片加载框架,优化了许多gif图片加载时内存消耗的不足,但是在加载gif的时候尽量还是不要使用重用池机制来显示,会很占内存。(多对一已经很羞射了,要是还会动,怎会还有力(jing)气(li))
有些小伙伴说,我不想用你封装好的类目,我要自己定义,自己搞。好,也可以,你可以直接调用HUDView的单例,或者在上面的那个“ BR_ReuseHUDView”类里面的br_getNotBusyHudView方法也可以帮你快速的找到一个当前没有在显示中的HUDView。
"BR_HUDView"也就是我们这个HUD框架里面的核心View,所有看见的HUD显示都是它,内部提供了很多方法,首先他有一个初始化的值,有两种布局方式(横向和竖向),三种显示的时候手势遮挡方式(只有导航栏可以点击,整个页面都可以点击,整个页面都不可以点击**只有在keyWindow上显示的时候设置BR_NavigationCanClick才会管用)
在初始化的时候,会去“BRHUDDefaultModel”类里面的单例去找初始化值,所以我们可以用更改BRHUDDefaultModel里面的值来更改HUDView初始化的时候值(在使用过程中),当然,也可以直接去更改BRHUDDefaultModel创建的时候的值,这样比较方便,但是在使用过程中就不可以更改了。
属性如下

/** * label字体 */ @property (strong , nonatomic) UIFont * promptFont; /** * 显示HUD的遮挡交互样式 */ @property (assign , nonatomic) BR_HUDShowTYpe showType; /** * HUD的布局样式 */ @property (assign , nonatomic) BR_LayoutType layoutType; /** * 最大宽度占View的屏幕比例 */ @property (assign , nonatomic) CGFloat widthScale; /** * 背景透明度 */ @property (assign , nonatomic) CGFloat lucencyScale; /** * 圆角数值,默认是8; */ @property (assign , nonatomic) CGFloat roundCorner; /** * 内部view至backView的上间距 */ @property (assign , nonatomic) CGFloat backTop; /** * 内部view至backView的左间距 */ @property (assign , nonatomic) CGFloat backLeft; /** * 内部view至backView的右间距 */ @property (assign , nonatomic) CGFloat backRight; /** * 内部view至backView的下间距 */ @property (assign , nonatomic) CGFloat backBottom; /** * image和label中间的高度 */ @property (assign , nonatomic) CGFloat centerHeight; /** * promptLabel最后可以显示几行文字,0就是无限制,默认是2. */ @property (assign , nonatomic) CGFloat labelLines; /** * 提示label字体颜色 */ @property (strong , nonatomic) UIColor * promptColor; /** * prompt对其方式 */ @property (assign , nonatomic) NSTextAlignment promptAlignment; /** * 显示HUD的背景颜色,可以透明 */ @property (strong , nonatomic) UIColor * backColor; /** * 提示的文字,可以为@“”或nil,就是没有。 */ @property (strong , nonatomic) NSString * promptString; /** HUD显示时window的位置 */ @property (assign , nonatomic) CGPoint bgViewCenter;``` HUDView的方法如下: [mw_shl_code=actionscript3,true]/** * 显示加载框,GIF加文字 * * @param gifName gif图片的名字,不需要加后缀 * @param prompt 提示的文字,传空或者@“”的话会自动高度为0. * @param gifImageSize gif图片显示的大小 * @param view 显示到哪个View上 * @param block 点击了当前触发block回调 */ + (void)showHUDWithGif : (NSString *)gifName Prompt : (NSString *)prompt GifImageSize : (CGSize)gifImageSize View : (UIView *)view ClickHUD : (ClickHUD)block; /** * 显示加载框,Image加文字 * * @param imageName 需要带后缀,静态图片的名字 * @param prompt 提示的文字,传空或者@“”的话会自动高度为0. * @param gifImageSize gif图片显示的大小 * @param view 显示到哪个View上 * @param block 点击了当前触发block回调 */ + (void)showHUDWithImage : (NSString *)imageName Prompt : (NSString *)prompt GifImageSize : (CGSize)gifImageSize View : (UIView *)view ClickHUD : (ClickHUD)block; /** * 显示提示框,纯文字。 * * @param prompt 文字内容 * @param view 显示到哪个View上 * @param block 点击了当前触发block回调 */ + (void)showHUDWithPrompt : (NSString *)prompt View : (UIView *)view ClickHUD : (ClickHUD)block; /** * 隐藏HUD */ + (void)hideHUD; /** 多长时间后隐藏HUD @param delayed 多长时间后隐藏HUD */ + (void)hideHUDWithDelayed : (CGFloat)delayed; #pragma mark ----- 实例方法 ----- /// 初始化 - (void)initializeHUDView; /** * 显示自定义View,文字 * *@param customView 自定义view *@param prompt 提示的文字,传nil或者@“”的话会自动高度为0. *@param customViewSize customView显示的大小 *@param view 显示到哪个view上 */ - (void)showHUDWithCustomView : (UIView *)customView Prompt : (NSString *)prompt CustomViewSize : (CGSize)customViewSize View : (UIView *)view; /** * 显示加载框,GIF加文字 * * @param gifName gif图片的名字,不需要加后缀 * @param prompt 提示的文字,传nil或者@“”的话会自动高度为0. * @param gifImageSize gif图片显示的大小 * @param view 显示到哪个View上 */ - (void)showHUDWithGif : (NSString *)gifName Prompt : (NSString *)prompt GifImageSize : (CGSize)gifImageSize View : (UIView *)view; /** * 显示加载框,Image加文字 * * @param imageName 需要带后缀,静态图片的名字 * @param prompt 提示的文字,传空或者@“”的话会自动高度为0. * @param gifImageSize gif图片显示的大小 * @param view 显示到哪个View上 */ - (void)showHUDWithImage : (NSString *)imageName Prompt : (NSString *)prompt GifImageSize : (CGSize)gifImageSize View : (UIView *)view; /** * 显示提示框,纯文字。 * * @param prompt 文字内容 * @param view 显示到哪个View上 */ - (void)showHUDWithPrompt : (NSString *)prompt View : (UIView *)view; /** * 隐藏HUD */ - (void)hideHUD; /** 多长时间后隐藏HUD @param delayed 多长时间后隐藏HUD */ - (void)hideHUDWithDelayed : (CGFloat)delayed; #p#分页标题#e#

好了,这些就是HUD的大概内容(全部内容),接下来说说ReminderView。
Reminder相对功能少一些,也单一一些,但主要在于自定义,需要什么样子自己去添加视图数组来实现,它只负责弹弹弹就可以了。
还是老规矩:
一大堆的默认值

#p#分页标题#e#

属性控制弹出

typedef enum{ BR_ReminderShowStyleFailure = 1, BR_ReminderShowStyleSuccess = 2, }BR_ReminderShowStyle; /** 设置showStyle,显示默认提示。 */ @property (assign , nonatomic) BR_ReminderShowStyle reminderStyle;

还有各种方法

#pragma mark ----- 显示到调用的View上,需要自己定义宽度 ----- /** 显示错误信息 @param prompt 信息提示 @param reminderView 返回显示的reminderView */ - (void)showReminderFailure : (NSString *)prompt Size : (CGSize)size BRReminderViewBlock : (BRReminderViewBlock)reminderView; /** 显示成功信息 @param prompt 信息提示 @param reminderView 返回显示的reminderView */ - (void)showReminderSuccess : (NSString *)prompt Size : (CGSize)size BRReminderViewBlock : (BRReminderViewBlock)reminderView; /** 显示全部自定的View,view放在数组里 @param customViewArray 自定义View的数组,view需要些好布局位置和大小 @param reminderView 返回显示的reminderView */ - (void)showReminderCustomViewArray : (NSArray *)customViewArray Size : (CGSize)size BRReminderViewBlock : (BRReminderViewBlock)reminderView; #pragma mark ----- 显示到window上 ----- /** 显示错误信息 @param prompt 信息提示 @param reminderView 返回显示的reminderView */ - (void)showReminderFailureWithWindow : (NSString *)prompt Height : (CGFloat)height BRReminderViewBlock : (BRReminderViewBlock)reminderView; /** 显示成功信息 @param prompt 信息提示 @param reminderView 返回显示的reminderView */ - (void)showReminderSuccessWithWindow : (NSString *)prompt Height : (CGFloat)height BRReminderViewBlock : (BRReminderViewBlock)reminderView; /** 显示全部自定的View,view放在数组里 @param customViewArray 自定义View的数组,view需要些好布局位置和大小 @param reminderView 返回显示的reminderView */ - (void)showReminderCustomViewArrayWithWindow : (NSArray *)customViewArray Height : (CGFloat)height BRReminderViewBlock : (BRReminderViewBlock)reminderView; #pragma mark ----- 单例调用,添加到Window上 ----- /** 单例调用显示错误信息 @param prompt 显示的内容 @param reminderView 显示的view回调,可做更改。 */ - (void)showReminderFailure:(NSString *)prompt BRReminderViewBlock:(BRReminderViewBlock)reminderView; /** 单例调用显示正确信息 @param prompt 显示的内容 @param reminderView 显示的view回调,可做更改。 */ - (void)showReminderSuccess:(NSString *)prompt BRReminderViewBlock:(BRReminderViewBlock)reminderView;```相对应的也有一个重用池的类“BR_ReuseReminderView” 还有ReminderView的属性设置 [mw_shl_code=actionscript3,true]/** 透明图层回调 */ @property (copy , nonatomic) BR_NULLBLOCK tapBlock; /** 是否开启手势 */ @property (assign , nonatomic) BOOL startSwipe; /** 是否开启点击透明图层回调,BR_PartScreen没有透明图层 */ @property (assign , nonatomic) BOOL isTapTrans; /** 是否正在显示 */ @property (assign , nonatomic) BOOL isShow; /** 显示bgView的背景颜色 */ @property (strong , nonatomic) UIColor * bgColor; /** 目前的状态 */ @property (assign , nonatomic) BR_ReminderState state; /** 显示时候的手势覆盖状态 */ @property (assign , nonatomic) BR_ReminderViewType showType;

还有根类方法

/** 显示到window上 @param viewArray 需要添加到ReminderView上的array创建好调好大小位置之后直接加入数组就可以了。 */ - (void)showWithWindow : (CGSize)size Animate : (BOOL)animate ViewArray : (NSArray <UIView *> *)viewArray Complete : (BR_NULLBLOCK)complete; /** 显示到View上 @param view 显示到哪个view上 @param size 大小 @param viewArray 需要添加到ReminderView上的array创建好调好大小位置之后直接加入数组就可以了。 */ - (void)showWithView : (UIView *)view Size : (CGSize)size Animate : (BOOL)animate ViewArray : (NSArray <UIView *> *)viewArray Complete : (BR_NULLBLOCK)complete; /** 显示到window上 @param viewArray 需要添加到ReminderView上的array创建好调好大小位置之后直接加入数组就可以了。 */ - (void)showWithWindow : (CGSize)size ViewArray : (NSArray <UIView *> *)viewArray Animate : (BOOL)animate; /** 显示到View上 @param view 显示到哪个view上 @param size 大小 @param viewArray 需要添加到ReminderView上的array创建好调好大小位置之后直接加入数组就可以了。 */ - (void)showWithView : (UIView *)view``` Size : (CGSize)size ViewArray : (NSArray <UIView *> *)viewArray Animate : (BOOL)animate; /// 隐藏 - (void)dismiss : (BOOL)animate; /** 延时隐藏 @param animate 是否启用动画 @param delayed 延时时间 */ - (void)dismiss : (BOOL)animate Delayed : (CGFloat)delayed;#p#分页标题#e#

注:如果使用ReminderView的时候有自动调整StatusBar文字颜色的需求,需要在info.plist文件里加上View controller-based status bar appearance设置为BOOL类型,值为NO,就可以了。

差不多就这些东西了,喜欢的小伙伴可以加我微信,底下是我的二维码,也可以在评论区跟我侃侃山。


这里还有:


还可以点击去查询:
[BRReminderHUD]    [一款]    [毕业]    [功能]    [ReminderView]    [BRReminderHUD 一款多毕业功能HUD和ReminderView]   

请扫码加微信 微信号:sj52abcd


下载地址: http://www.taolw.com/down/8060.docx
  • 上一篇:仿微信钱包条定制形码切换动画
  • 下一篇:仿斗鱼(毕业设计Swift版)