• Stars
    star
    188
  • Rank 204,226 (Top 5 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created about 8 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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、新增设置遮罩与父视图的间距属性,支持上下左右弹窗
3.0.1版本:2021.12.31
    修复某些情况下hasCover方法不准确的问题

技术支持:

csdn博客地址

简书地址

本人QQ:1094887059 交流群:529040270

More Repositories

1

GKPageScrollView

iOS类似微博、抖音、网易云等个人详情页滑动嵌套效果
Objective-C
1,520
star
2

GKPhotoBrowser

iOS仿微信、今日头条等图片浏览器
Objective-C
1,241
star
3

GKNavigationBarViewController

iOS自定义导航栏-导航栏联动
Objective-C
727
star
4

GKDYVideo

iOS仿抖音短视频
Objective-C
602
star
5

GKNavigationBar

GKNavigationBarViewController的分类实现,耦合度底,使用更便捷
Objective-C
320
star
6

GKAudioPlayerDemo

iOS使用MobileVLCKit实现仿网易云音乐播放音乐
Objective-C
288
star
7

GKWYMusic

iOS基于FreeStreamer的仿网易云音乐播放器
Objective-C
191
star
8

GKNavigationBarSwift

GKNavigationBar的Swift版本
Swift
152
star
9

GKCycleScrollView

一个轻量级的自定义轮播图组件
Objective-C
146
star
10

GKNavigationController

iOS自定义导航栏-导航条联动(仿网易新闻、网易云音乐等导航栏滑动效果)
Objective-C
60
star
11

GKVideoScrollView

iOS仿抖音等上下滑动切换视图,使用方式类似UITableView,支持不同cell切换
Objective-C
28
star
12

GKXimalaya

iOS 仿喜马拉雅首页滑动颜色渐变效果
Objective-C
27
star
13

JXCategoryViewExt

对JXCategoryView优化及扩展,拆分pod
Objective-C
18
star
14

GKSliderView

iOS - 自定义一个滑杆控件
Objective-C
17
star
15

TagsDemo

动态创建多个标签,自动换行
Objective-C
16
star
16

GKCoverSwift

GKCover-一个简单的遮罩视图,让你的弹窗更easy,支持自定义遮罩swift版本
Objective-C
11
star
17

GKDubbingDemo

一个根据视频内容配音的demo,实现录音、添加背景音乐、插入音效、音频与音频、音频与视频合成功能
Objective-C
11
star
18

GKSetting

iOS - 快速集成各种设置界面
Objective-C
10
star
19

GKPlaceholder

UIScrollView空数据占位图
Objective-C
10
star
20

GKWKWebViewDemo

一个webView播放视频时自动旋转的demo
Objective-C
9
star
21

GKAuthorizationTool

ios 对系统相册、相机、麦克风授权的简易工具
Objective-C
8
star
22

GKLoadingView

iOS自定义loadingView
Objective-C
8
star
23

GKMessageTool

基于MBProgressHUD 1.0.0的简单封装工具类
Objective-C
6
star
24

GKDownloadManager

基于AFNetworking封装的下载管理器,支持断点续传
Objective-C
5
star
25

GKAudioRecorder

基于TheAmazingAudioEngine封装的录音播放库
Objective-C
5
star
26

JXSegmentedViewExt

对JXSegmentedView的优化及pod拆分
Swift
5
star
27

GKTabBar

iOS 自定义tabbar
Objective-C
3
star
28

GKExampleImages

demo示例图片
3
star
29

GKWXManager

微信登录、支付、分享的封装
Objective-C
3
star
30

GKLivePhotoManager

livePhoto处理工具类
Objective-C
2
star
31

QuintGao

2
star
32

GKFlowViewDemo

流动性滚动页面Demo
Objective-C
2
star
33

GKNavigationBarViewControllerSwift

导航栏联动
Swift
2
star
34

GKStatusBar

状态栏样式
Objective-C
1
star
35

GKPipManager

Objective-C
1
star
36

GKQQMusicDemo

iOS-VLCKit实现仿QQ音乐播放音乐
Objective-C
1
star