博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用CALayer实现聚光灯效果
阅读量:6944 次
发布时间:2019-06-27

本文共 1191 字,大约阅读时间需要 3 分钟。

效果图:

代码部分:

#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
*)touches withEvent:(UIEvent *)event{ self.maskViewLayer.frame = self.imageLayer.bounds;}

github:

转载地址:http://uwanl.baihongyu.com/

你可能感兴趣的文章
工作log
查看>>
SpringBoot系统列 2 - 配置文件,多环境配置(dev,qa,online)
查看>>
C# WPF MVVM QQ密码管家项目(8,完结篇:自动输入QQ号、密码)
查看>>
CentOS7 搭建FTP服务器
查看>>
Eureka多机高可用
查看>>
CopyOnWriteArrayList你都不知道,怎么拿offer?
查看>>
vscode vue 代码提示
查看>>
MS CRM 2011 JScript操作lookup control
查看>>
(轉貼) 如何解決Windows XP開機後停頓的問題? (OS) (Windows)
查看>>
微软build大会.net平台大事汇总
查看>>
关于抽象工厂的一些理解
查看>>
matlab练习程序(多圆交点)
查看>>
C#正则表达式编程(二):Regex类用法
查看>>
[转]不要一辈子靠技术生存
查看>>
Android文件操作总结
查看>>
myeclipse自带的derby去除
查看>>
交换两个变量的值的方法-----从简单问题入手
查看>>
开源力量公开课第三十期- 跟我一起玩转OpenStack
查看>>
雷电android game学习笔记(1)
查看>>
【转】iOS 6版本与之前版本差异总结
查看>>