iOS Toast封装 基于SVProgressHUD 两分钟封装很好用的安卓版Toast 弹窗效果封装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37677536/article/details/83111318

先看效果

在这里插入图片描述

基于SV的好处

例如网络加载需要用SV显示加载信息,但是加载成功如果是其他toast还需要调用SV的dismiss然后才能显示toast 这里直接显示toast即可方便,SV底层是用的单例实现的,这里随意弹toast 随意弹SVProgress都不会有什么问题。还可以增加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];

猜你喜欢

转载自blog.csdn.net/m0_37677536/article/details/83111318
今日推荐