zoukankan      html  css  js  c++  java
  • 用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

  • 相关阅读:
    驾照暂时不用年审,放心了
    痛筋
    摘枣
    当了一回山村教师
    补贴山村学校照片
    心中无敌,无敌于天下
    山路
    学会珍惜
    写给部分美女们
    不打羽毛球好多年
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5147617.html
Copyright © 2011-2022 走看看