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下载
三 尾言
如有问题bug或者写的不当之处,请联系博主,请读者不吝赐教,博主感激不尽(博主邮箱[email protected])