当前位置: 首页 > article >正文

iOS layer.mask 的原理

直接上原理

控制layer本身渲染的一个layer。效果是:比如imageLayer有一个maskLayer作为mask(注意maskLayer可以不跟imageLayer大小一样),那maskLayer透明的地方,imageLayer就不会渲染,而是变透明,显示出imageLayer之后的内容,maskLayer不透明的地方,imageLayer就会正常渲染,显示出imageLayer本来的内容如果maskLayer比imageLayer要小,那默认的maskLayer之外的地方都是透明的,都不会渲染。

由以上原理可知,如果我们想让一个视图只展示一部分,
那么我们可以通过设置其layer.mask来实现,
如果一个视图要实现一个渐变的展示,我们也可以通过
layer.mask实现

   self.view.backgroundColor = [UIColor cyanColor];
    CALayer *layer = [[CALayer alloc] init];
    layer.frame = CGRectMake(100, 200, 100, 100);
    layer.backgroundColor = [UIColor whiteColor].CGColor;
    self.view.layer.mask = layer;
    

效果
在这里插入图片描述

整个页面只展示了一部分

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor cyanColor];
  
    CAGradientLayer *gradientlayer = [[CAGradientLayer alloc] init];
    gradientlayer.frame = CGRectMake(100, 100, 100, 100);
    gradientlayer.colors = @[(id)[[UIColor whiteColor] colorWithAlphaComponent:0].CGColor, (id)[[UIColor whiteColor] colorWithAlphaComponent:1].CGColor];
    gradientlayer.locations = @[@0, @1];
    self.view.layer.mask = gradientlayer;
    // Do any additional setup after loading the view.
}

在这里插入图片描述


http://www.kler.cn/a/504457.html

相关文章:

  • 如何使用 Excel 进行多元回归分析?
  • 软件设计模式的原则
  • 【Qt】01-了解QT
  • hive迁移后修复分区慢,怎么办?
  • C++ STL之容器介绍(vector、list、set、map)
  • Codeforces Round 996 (Div. 2)(4 / 6)
  • AI自动化编程:天使还是恶魔?
  • RAG实战_01代码生成_02智能检索
  • 深入剖析 Java 设计模式之观察者模式
  • aws(学习笔记第二十三课) step functions进行开发(lambda函数调用)
  • G1原理—3.G1是如何提升垃圾回收效率
  • 【大数据】机器学习 -----关于data.csv数据集分析案例
  • 如何在Ubuntu上安装和配置Git
  • LLM 智能视频字幕助手,支持生成、断句、优化、翻译、视频合成全流程
  • 从0开始学习搭网站第二天
  • 《计算机网络》课后探研题书面报告_网际校验和算法
  • SLAM后端处理
  • uniapp 小程序 五星评分精确到0.1
  • Lua语言的软件开发工具
  • 设计模式-工厂模式/抽象工厂模式
  • 免 root 开启 Pixel 手机 VoLTE 功能
  • 使用Python实现疫情监测系统
  • STM32 FreeRTOS 介绍
  • 【机器学习:十四、TensorFlow与PyTorch的对比分析】
  • 微服务主流框架和基础设施介绍
  • 关于编写测试用例的细枝末节