iOS Toast HUD 封装 基于SVProgressHUD 两分钟封装很好用的iOS版Toast 类似Android Toast 弹窗效果封装

先看效果,背景色可以自己设置

在这里插入图片描述

基于SV的好处

例如网络加载需要用SV显示加载信息,但是加载成功如果是其他toast还需要调用SV的dismiss然后才能显示toast 这里直接显示toast即可方便,SV底层是用的单例实现的,这里随意弹toast 随意弹SVProgress都不会有什么问题,不必考虑dismiss的问题。还可以增加toast结束回调,详情请看代码。

代码

这里封装四个方法,自由控制显示时间
YHToastHUD.h

//
//  YHToastHUD.h
//  Created by huizai on 2018/10/11.
//  Copyright © 2018年 caikr. All rights reserved.
//

#import "SVProgressHUD.h"
typedef void (^ToastHUDDismissCompletion)(void);
@interface YHToastHUD : SVProgressHUD
+(void)showToast:(NSString*)msg;
+(void)showToast:(NSString*)msg andDuration:(CGFloat)duration;
+(void)showToast:(NSString*)msg completion:(nullable ToastHUDDismissCompletion)completion;
+(void)showToast:(NSString*)msg andDuration:(CGFloat)duration completion:(nullable ToastHUDDismissCompletion)completion;
@end

YHToastHUD.m

//
//  YHToastHUD.m
//  Created by huizai on 2018/10/11.
//  Copyright © 2018年 caikr. All rights reserved.
//

#import "YHToastHUD.h"

@implementation YHToastHUD

+(void)showToast:(NSString*)msg andDuration:(CGFloat)duration{
    [self showToast:msg andDuration:duration completion:nil];
}

+(void)showToast:(NSString*)msg{
    [self showToast:msg andDuration:1.2];
}

+(void)showToast:(NSString*)msg completion:(nullable ToastHUDDismissCompletion)completion{
    [self showToast:msg andDuration:1.2 completion:^{
        completion();
    }];
}

+(void)showToast:(NSString*)msg andDuration:(CGFloat)duration completion:(nullable ToastHUDDismissCompletion)completion{
    [SVProgressHUD dismiss];
    [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeClear];
    [SVProgressHUD setDefaultStyle:SVProgressHUDStyleDark];
    [SVProgressHUD setImageViewSize:CGSizeMake(0, -1)];
    [SVProgressHUD showImage:[UIImage new] status:msg];
    [SVProgressHUD dismissWithDelay:duration completion:^{
        [SVProgressHUD setDefaultStyle:SVProgressHUDStyleLight];
        [SVProgressHUD setImageViewSize:CGSizeMake(28, 28)];
        [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeBlack];
        if (completion) {
            completion();
        }
    }];
}

@end

注意,需要修改一下SV默认配置 在AppDelegate里面

都修改什么一看即明白

 [SVProgressHUD setFont:[UIFont systemFontOfSize:RATIO(16)]];
 //这个必须要加保证跳转页面前SV要dimiss,
 [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeBlack];
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值