关于iOS遮罩的实现与透明度为0时自己的理解

该文章转移自我在CSDN上的博客,为了方便管理所以我把他们转载过来,以前技术比较有限所以博客可能写的比较简单吧.

关于遮罩的实现和理解

    #pragma mark -
    #pragma mark  点击imageButton
    - (IBAction)didClickImageButton:(id)sender{
           
            /**
                  图片恢复原状
                  遮罩view消失
                  */
           
            // 对coverView的透明度进行判断
            if (self.coverView.alpha ==0) {
                    // 进行放大
                    [self didClickBigImageButton:nil];
                   
                } else {
                       
                        [UIView animateWithDuration:0.5 animations:^{
                               
                                self.coverView.alpha =0;
                                _imageButton.transform =CGAffineTransformIdentity;
                            }];
                       
                    }
           
    }
     
    这段代码的目的是通过点击这个按钮图片来放大,同时声称一个半透明遮罩,并将这个图片置顶到遮罩层上;再次点击后,将透明度变为0,并将图片缩小。
     
    #pragma mark -
    #pragma mark  加载 coverView
    - (UIView*)coverView {
            if (nil ==_coverView) {
                    // 实例化一个view
                    UIView*coverView = [[UIViewalloc]initWithFrame:self.view.bounds];
                   
                    self.coverView =coverView;
                   
                    // 设置透明度
                    coverView.alpha = 0;
                   
                    // 设置颜色
                    coverView.backgroundColor = [UIColorblackColor];
                   
                    // 添加到控制器的view上
                    [self.viewaddSubview:coverView];
                }
           
            return _coverView;
    } 

这是实现遮罩的代码。
那么问题来了:为什么遮罩层透明度为0,但它实际上是存在的,就好比看的见摸不着一样的感觉,但是为什么能穿透遮罩层来点击遮罩层下面的按钮呢?
经过查找资料,以及问安卓的同学,发现是这样子的,当透明度为0-0.01时,可以把这个遮罩层当不存在一样,完全可以击穿遮罩层。而安卓因为焦点的问题点击不到遮罩层下面也是和iOS有区别。


关于iOS遮罩的实现与透明度为0时自己的理解_第1张图片

你可能感兴趣的:(关于iOS遮罩的实现与透明度为0时自己的理解)