iOS 透明遮罩层

作者: Jesscia_Liu | 来源:发表于2017-06-09 17:01 被阅读976次
  • 有时候功能引导页需要对指定部分可见,其余为黑色遮罩.这时候需要用到图层绘制

  • 注意点

    • 封装的GuideView, 需要设置背景色为透明(否则制定透明部分不能正确显示)
    • 在drawRect中设置封装的GuideView背景色为黑色,
      然后设置透明范围(alphaRect)绘制透明部分
#define MLScreenH [UIScreen mainScreen].bounds.size.height
#define MLScreenW [UIScreen mainScreen].bounds.size.width

@implementation GuideView
- (instancetype)init{
    self = [super init];
    self.frame = CGRectMake(0, 0, MLScreenW, MLScreenH);
    self.backgroundColor=[UIColor clearColor];
    return self;
}

- (void)drawRect:(CGRect)rect {
    
    CGContextRef context = UIGraphicsGetCurrentContext();
    if (context == nil) {
        return;
    }
    
    [[[UIColor blackColor] colorWithAlphaComponent:0.8f] setFill];
    UIRectFill(rect);
    
    [[UIColor clearColor] setFill];
    
    //设置透明部分位置和圆角
    CGRect alphaRect = CGRectMake(10, 10, 100, 100);
    CGFloat cornerRadius = 10;
    UIBezierPath *bezierPath=[UIBezierPath bezierPathWithRoundedRect:alphaRect
                                                        cornerRadius:cornerRadius];
    CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(), [[UIColor clearColor] CGColor]);
    CGContextAddPath(UIGraphicsGetCurrentContext(), bezierPath.CGPath);
    CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeClear);
    CGContextFillPath(UIGraphicsGetCurrentContext());
    
}
  • 效果如图,透明位置可按需求改动.
resultImage.png

相关文章

  • iOS 透明遮罩层

    有时候功能引导页需要对指定部分可见,其余为黑色遮罩.这时候需要用到图层绘制 注意点封装的GuideView, 需要...

  • ios半透明遮罩层

    简单的半透明遮罩层的生成,具体的alpha、样式可以根据自己的需求进行调节,代码如下:

  • 移动端部分兼容问题调整

    ios系统中元素被触摸时产生的半透明灰色遮罩怎么去掉ios用户点击一个链接,会出现一个半透明灰色遮罩, 如果想要禁...

  • 问题记录 - 子视图不响应父视图的手势

    需求:自定义一个提示框,添加一个全屏的透明遮罩层,点击遮罩层提示框隐藏消失,点击提示框不做响应。 问题:在遮罩层正...

  • 15.小红点和遮罩层

    小红点 二、遮罩层 当透明度为0-0.01时,可以把这个遮罩层当不存在一样,完全可以击穿遮罩层。而安卓因为焦点的问...

  • CSS 半透明遮罩层

    很多时候,我们需要通过一层半透明的遮罩层来把后面的一切整体调暗,以便凸显某个特定的UI元素,引导用户关注,比如弹出...

  • 父容器需要透明,子容器不要透明

    文章转载地址: css实现遮罩层,父div透明,子div不透明 解决的办法 使用RGBA

  • Pr19-Premiere特效滤镜:键控-轨道遮罩

    效果-键控-轨道遮罩键:上图形,下背景 文字层在上方:遮罩层 背景层在下方:被遮罩层 给被遮罩层添加“轨道遮罩键”...

  • 微信小程序之遮罩功能实现

    1.放一个空div,作为遮罩层最外层 2.写这个遮罩层样式 其中颜色可以任选,透明度也可以任选。兼容处理: 3.控...

  • iOS笔记

    iOS 性能优化 产生离屏渲染:圆角,阴影,光栅化,透明度,遮罩, 使用CGContext在drawRect中绘制...

网友评论

    本文标题:iOS 透明遮罩层

    本文链接:https://www.haomeiwen.com/subject/tgjfqxtx.html