GKCover 3.0.1

GKCover 3.0.1

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Dec 2021

Maintained by QuintGao.



GKCover 3.0.1

GKCover

License MIT   platform   languages    cocoapods   support

一行代码实现遮罩视图,让你的弹窗更easy

说明

关于iPhone X及iOS 11的适配问题,在底部弹出视图时,建议自行将弹出视图的底部距离增加安全区域的距离,防止遮挡。

版本说明

版本2.4.0更新:分离遮罩弹出和隐藏时的动画,当前隐藏遮罩方法[GKCover hideCover]

最新版本2.3.1已支持判断遮罩是否存在的方法:[GKCover hasCover]

使用方法

1.底部弹窗

    UIView *redView = [UIView new];
    redView.backgroundColor = [UIColor redColor];
    redView.gk_size = CGSizeMake(KScreenW, 200);

    [GKCover translucentCoverFrom:self.view content:redView animated:YES];
    

2.中间弹窗

    UIView *greenView = [UIView new];
    greenView.backgroundColor = [UIColor greenColor];
    greenView.gk_size = CGSizeMake(240, 160);
    
    [GKCover translucentWindowCenterCoverContent:greenView animated:YES];

3.自定义弹窗

    GKCover *cover = [GKCover transparentCoverWithTarget:self action:@selector(hidden)];
    cover.frame = self.view.bounds;
    [self.view addSubview:cover];
    self.cover = cover;
    
    UIView *customView = [UIView new];
    customView.backgroundColor = [UIColor purpleColor];
    customView.frame = CGRectMake((KScreenW -  300)/2, 0, 300, 200);
    [self.view addSubview:customView];
    self.customView = customView;
    
    [UIView animateWithDuration:0.25 animations:^{
        customView.gk_y = (KScreenH - 200)/2;
    }];

4.显示和隐藏block

UIView *customView = [UIView new];
    customView.gk_size = CGSizeMake(KScreenW, 200);
    customView.backgroundColor = [UIColor blackColor];
    
    [GKCover translucentCoverFrom:self.view content:customView animated:YES showBlock:^{
        // 显示出来时的block
        NSLog(@"弹窗显示了,6不6");
    } hideBlock:^{
        // 移除后的block
        NSLog(@"弹窗消失了,555");
    }];


5.新增一行代码实现各种弹窗

/**
显示遮罩

@param fromView    显示的视图上
@param contentView 显示的视图
@param style       遮罩类型
@param showStyle   显示类型
@param animStyle   动画类型
@param notClick    是否不可点击
*/
+ (void)coverFrom:(UIView *)fromView contentView:(UIView *)contentView style:(GKCoverStyle)style showStyle:(GKCoverShowStyle)showStyle animStyle:(GKCoverAnimStyle)animStyle notClick:(BOOL)notClick;

最全方法:增加遮罩显示和隐藏的block方法

+ (void)coverFrom:(UIView *)fromView contentView:(UIView *)contentView style:(GKCoverStyle)style showStyle:(GKCoverShowStyle)showStyle animStyle:(GKCoverAnimStyle)animStyle notClick:(BOOL)notClick showBlock:(showBlock)showBlock hideBlock:(hideBlock)hideBlock;


Demo效果图:

image

新增demo效果图:

顶部弹出

image

中间弹出

image

底部弹出

image

更新日志:

1.0.0版本:添加底部遮罩和中间遮罩
1.0.1版本:添加自定义遮罩
1.0.2版本:添加使用方法
1.0.3版本:修改一个全透明遮罩不能点击消失的bug
1.0.4版本:更新Demo工程,添加更多使用方法
1.0.5版本:遮罩支持显示和隐藏的block,可以在block中添加要实现的方法
1.0.6版本:添加外部调用隐藏方法

2.0.0版本:2016.09.01,重大更新,优化代码内容,新增是否能点击遮罩的判断值,使用更方便。
2.1.0版本:2016.09.02,新增毛玻璃效果
2.2.0版本:2016.11.02,重大更新
    1.增加类型的判断(毛玻璃,全透明,半透明)
    2.增加显示类型的判断(上,中,下)
    3.增加动画类型的判断(从上弹出,中间弹出,底部弹出,无动画)
2.3.0版本:2016.11.17
    1. 部分内容优化
    2. 增加2.2.0的使用方法demo
2.3.1版本:2017.2.21
    1. 新增判断遮罩是否已存在的方法[GKCover hasCover];
2.4.0版本:2017.2.28
    1. 分离弹出和隐藏时的动画
    2. 当前版本的隐藏方法改为[GKCover hideCover]防止与以前版本的冲突
2.4.2版本:2017.8.23
    新增遮罩遮盖状态栏的方法
2.5.2版本:2018.6.6
    新增调用隐藏方法时加入block
2.5.3版本:2018.6.6
    新增改变遮罩背景色方法
2.5.4版本:2019.3.11
    优化代码,防止内存泄漏
2.5.5版本:2020.04.11
    优化,解决多处调用隐藏block可以导致的bug
2.6.0版本:2021.03.26
    新增自定义中间弹窗动画功能
2.6.1版本:2021.05.08
    新增无动画隐藏遮罩方法
3.0.0版本:2021.09.01
    1、内部逻辑优化,删除弃用方法及无用代码
    2、新增设置遮罩与父视图的间距属性,支持上下左右弹窗

技术支持:

csdn博客地址

简书地址

本人QQ:1094887059 交流群:529040270