简单的iOS提示Toast
11/19/2018
最近梳理项目中的Toast,发现应用的场景并不复杂,于是就自己定义了一个Toast替换之前的。
WHToast是一个轻量级的提示控件,没有任何依赖。先来看一下效果图。
Github地址:https://github.com/remember17/WHToast
使用方法也非常简单,下面是使用步骤。
1. 可以直接去github下载文件拖进工程,也可以使用pod。
如果pod找不到WHToast,先执行 pod setup
1 2 3 4 5 |
pod 'WHToast' // 如果pod找不到WHToast,先执行 pod setup pod setup |
2. 导入WHToast.h头文件
1 2 3 4 5 |
// pod #import <WHToast.h> // 直接拖入文件 #import "WHToast.h" |
3. 说明
每种显示类型都有两个方法,第一个方法默认显示在屏幕中间,第二个方法带有originY参数的是可以自定义显示位置,也就是自定义frame.origin.y。(注意:如果传入的originY<=0,也是显示在屏幕中间)。
4. 显示文字提示。
1 2 3 4 5 6 7 8 9 10 |
// 显示在页面中间,duration代表多久之后消失 [WHToast showMessage:@"测试一下" duration:2 finishHandler:^{ NSLog(@"省略n行代码"); }]; // 自定义frame.origin.y [WHToast showMessage:@"测试一下" originY:200 duration:2 finishHandler:^{ NSLog(@"省略n行代码"); }]; |
5. 显示带有成功图标的提示。
1 2 3 4 5 6 7 8 9 10 |
// 显示在页面中间,duration代表多久之后消失 [WHToast showSuccessWithMessage:@"测试一下" duration:2 finishHandler:^{ NSLog(@"省略n行代码"); }]; // 自定义frame.origin.y [WHToast showSuccessWithMessage:@"测试一下" originY:100 duration:2 finishHandler:^{ NSLog(@"省略n行代码"); }]; |
6. 带有错误图标的提示。
1 2 3 4 5 6 7 8 9 10 11 |
// 显示在页面中间,duration代表多久之后消失 [WHToast showErrorWithMessage:@"测试一下" duration:2 finishHandler:^{ NSLog(@"省略n行代码"); }]; // 自定义frame.origin.y [WHToast showErrorWithMessage:@"测试一下" originY:200 duration :2 finishHandler:^{ NSLog(@"省略n行代码"); }]; |
7. 传入一个图片,自定义图标提示。
1 2 3 4 5 6 7 8 9 10 |
// 显示自定义图片,如果message传入nil,则只显示图片,duration代表多久之后消失 [WHToast showImage:[UIImage imageNamed:@"123"] message:nil duration:2 finishHandler:^{ NSLog(@"省略n行代码"); }]; // 自定义frame.origin.y,显示自定义图片 [WHToast showImage:[UIImage imageNamed:@"123"] message:@"测试一下" originY:200 duration:2 finishHandler:^{ NSLog(@"省略n行代码"); }]; |
8. 全局自定义显示样式。
直接使用WHToast的类方法就可以做全局自定义设置。样式如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
/** 是否有背景遮罩,默认有 */ + (void)setShowMask:(BOOL)showMask; /** 遮罩颜色,默认透明 */ + (void)setMaskColor:(UIColor *)maskColor; /** 遮罩是否遮住导航栏,默认遮住 */ + (void)setMaskCoverNav:(BOOL)maskCoverNav; /** 边距,默认12 */ + (void)setPadding:(CGFloat)padding; /** 提示图片尺寸,默认(25,25)*/ + (void)setTipImageSize:(CGSize)tipImageSize; /** 圆角,默认7 */ + (void)setCornerRadius:(CGFloat)cornerRadius; /** 背景颜色,默认[UIColor colorWithWhite:0 alpha:0.8] */ + (void)setBackColor:(UIColor *)backColor; /** 成功/失败 图标颜色,默认白色 */ + (void)setIconColor:(UIColor *)iconColor; /** 文字颜色,默认白色 */ + (void)setTextColor:(UIColor *)textColor; /** 文字大小,默认15 */ + (void)setFontSize:(CGFloat)fontSize; /** 恢复默认配置 */ + (void)resetConfig; // 调用方式 [WHToast setShowMask:NO]; [WHToast setMaskColor:[UIColor colorWithWhite:0 alpha:0.6]]; [WHToast setMaskCoverNav:NO]; [WHToast setTipImageSize:CGSizeMake(50, 50)]; [WHToast setFontSize:30]; [WHToast setPadding:20]; [WHToast setCornerRadius:20]; [WHToast setIconColor:[UIColor blackColor]]; [WHToast setBackColor:[UIColor whiteColor]]; [WHToast setTextColor:[UIColor blackColor]]; |
9. 下面贴出来WHToast的所有方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
/** 仅文字,展示在屏幕中间 */ + (void)showMessage:(NSString *)message duration:(NSTimeInterval)duration finishHandler:(dispatch_block_t)handler; /** 仅文字,自定义frame.origin.y 如果(originY <= 0)会展示在屏幕中间 */ + (void)showMessage:(NSString *)message originY:(CGFloat)originY duration:(NSTimeInterval)duration finishHandler:(dispatch_block_t)handler; /** 成功图标和文字,展示在屏幕中间 */ + (void)showSuccessWithMessage:(NSString *)message duration:(NSTimeInterval)duration finishHandler:(dispatch_block_t)handler; /** 成功图标和文字,自定义frame.origin.y 如果(originY <= 0)会展示在屏幕中间 */ + (void)showSuccessWithMessage:(NSString *)message originY:(CGFloat)originY duration:(NSTimeInterval)duration finishHandler:(dispatch_block_t)handler; /** 失败图标和文字,展示在屏幕中间 */ + (void)showErrorWithMessage:(NSString *)message duration:(NSTimeInterval)duration finishHandler:(dispatch_block_t)handler; /** 失败图标和文字,自定义frame.origin.y 如果(originY <= 0)会展示在屏幕中间 */ + (void)showErrorWithMessage:(NSString *)message originY:(CGFloat)originY duration:(NSTimeInterval)duration finishHandler:(dispatch_block_t)handler; /** 自定义图片和文字,展示在屏幕中间。 如果message传入nil,则只显示图片 */ + (void)showImage:(UIImage *)image message:(NSString *)message duration:(NSTimeInterval)duration finishHandler:(dispatch_block_t)handler; /** 自定义图片和文字,自定义frame.origin.y 如果(originY <= 0)会展示在屏幕中间。如果message传入nil,则只显示图片 */ + (void)showImage:(UIImage *)image message:(NSString *)message originY:(CGFloat)originY duration:(NSTimeInterval)duration finishHandler:(dispatch_block_t)handler; /** 主动消失 */ + (void)hide; /******************************************************/ /****************** 设置全局样式 **********************/ /******************************************************/ /** 是否有背景遮罩,默认有 */ + (void)setShowMask:(BOOL)showMask; /** 遮罩颜色,默认透明 */ + (void)setMaskColor:(UIColor *)maskColor; /** 遮罩是否遮住导航栏,默认遮住 */ + (void)setMaskCoverNav:(BOOL)maskCoverNav; /** 边距,默认12 */ + (void)setPadding:(CGFloat)padding; /** 提示图片尺寸,默认(25,25)*/ + (void)setTipImageSize:(CGSize)tipImageSize; /** 圆角,默认7 */ + (void)setCornerRadius:(CGFloat)cornerRadius; /** 背景颜色,默认[UIColor colorWithWhite:0 alpha:0.8] */ + (void)setBackColor:(UIColor *)backColor; /** 成功/失败 图标颜色,默认白色 */ + (void)setIconColor:(UIColor *)iconColor; /** 文字颜色,默认白色 */ + (void)setTextColor:(UIColor *)textColor; /** 文字大小,默认15 */ + (void)setFontSize:(CGFloat)fontSize; /** 恢复默认配置 */ + (void)resetConfig; |
后记
✨✨✨https://github.com/remember17/WHToast
我的GitHub:https://github.com/remember17