iOS开发实现——蒙版(引导介绍遮罩)工具类 源码+解析

iOS开发实现——蒙版(引导介绍遮罩)源码+解析

引用块内容
需求:博主前段时间做的教育类型APP,需要引导用户(低龄化小朋友),播放器的播放,页面可以左右滑动,以及右上方进入答题卡入口(小朋友都是很聪明的,引导一次后基本都会使用),本文默认知识层,读者大概掌握iOS基本控件使用开发即可

效果图
这里写图片描述

一,核心代码(全)

-(void)creatMask:(NSString *)type{

    //灰色全屏的蒙版
    _maskView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, kScreenHeight)];
    _maskView.backgroundColor=[UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.5];
    [[UIApplication sharedApplication].keyWindow addSubview:_maskView];

    //按照需求位置铺上对应的图片
    UIImageView *mengban=[UIImageView new];
    if ([type isEqualToString:@"meng_01"]) {
        mengban.frame=CGRectMake(0, SafeAreaTopHeight+35, 260, 178.5);

    }  if ([type isEqualToString:@"meng_02"]) {
        mengban.frame=CGRectMake(kScreenWidth/2-79, kScreenHeight/2-83.5, 167, 158);

    } if ([type isEqualToString:@"meng_03"]) {
        mengban.frame=CGRectMake(kScreenWidth/2-79, kScreenHeight/2-83.5, 167, 158);

    } if ([type isEqualToString:@"meng_04"]) {
        mengban.frame=CGRectMake(kScreenWidth-258,0, 258, 200);

    }
    mengban.image=[UIImage imageNamed:type];
    [_maskView addSubview:mengban];

    //添加手势
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doTap:)];
        _maskView.userInteractionEnabled = YES;
        [_maskView addGestureRecognizer:tap];


}
#pragma -mark-手势触发
- (void)doTap:(NSString *)str{
    _maskPage++;
    [_maskView removeFromSuperview];//移除前面的蒙版,生成新的蒙版
    if (_maskPage==1) {
        [self creatMask:@"meng_02"];
    }if (_maskPage==2) {
        [self creatMask:@"meng_03"];
    }if (_maskPage==3) {
        [self creatMask:@"meng_04"];
    }if (_maskPage==4) {
        //最后一张当一个私有属性存在沙河里
        [[NSUserDefaults standardUserDefaults] setObject:@"mask" forKey:@"mask"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

}
-(void)Click:(UIButton *)btn{
    NSString *mask=[[NSUserDefaults standardUserDefaults] stringForKey:@"mask"];
    if ([mask isEqualToString:@"mask"]) {
        //判断沙河有这个属性就不在走蒙版
    }else{
    //走蒙版
        [self creatMask:@"meng_01"];
    }
}

二 对应配套demo下载

demo

三 尾言

如有问题bug或者写的不当之处,请联系博主,请读者不吝赐教,博主感激不尽(博主邮箱[email protected]

猜你喜欢

转载自blog.csdn.net/RJM758859182/article/details/82349870