• 用CALayer实现聚光灯效果


    效果图:

    代码部分:

    #import "ViewController.h"
    
    @interface ViewController ()
    
    @property (nonatomic, strong) CALayer *imageLayer;
    @property (nonatomic, strong) CALayer *maskViewLayer;
    
    @property (nonatomic, strong) UIImage *contentImage;
    @property (nonatomic, strong) UIImage *maskViewContentImage;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        self.view.backgroundColor = [UIColor blackColor];
        
        self.contentImage = [UIImage imageNamed:@"原始图片"];
        self.maskViewContentImage = [UIImage imageNamed:@"maskLayerContents"];
        
        self.imageLayer = [CALayer layer];
        self.imageLayer.frame = CGRectMake(0, 0, 200, 200);
        self.imageLayer.contents = (id)self.contentImage.CGImage;
        
        self.maskViewLayer = [CALayer layer];
        self.maskViewLayer.frame = CGRectMake(-200, -200, 200, 200);
        self.maskViewLayer.contents = (id)self.maskViewContentImage.CGImage;
        
        // self.imageLayer的局部区域的显示与否可以通过mask的alpha通道来决定
        self.imageLayer.mask = self.maskViewLayer;
        
        [self.view.layer addSublayer:self.imageLayer];
        
    }
    
    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    {
        self.maskViewLayer.frame = self.imageLayer.bounds;
    }

    github:https://github.com/RinpeChen/maskViewInCALayer

  • 相关阅读:
    模拟道路交通简单练习(类)
    printf 格式化输出符号
    ffplay源码分析01 ---- 框架
    RTSP协议
    SRS流媒体服务器03 ---- st-thread
    生成aac sdp文件
    生成h264 sdp文件
    RTP分包解包 ---- H264
    RTP协议
    SRS流媒体服务器02 ---- 文件框架
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5147617.html
Copyright © 2020-2023  润新知