【iOS】CAlayer的认识与使用

news2024/11/24 8:35:47

什么是CALayer

CALayer是UIView里的一个图层,其主要功能是负责显示视图与动画。CALayer和UIView 功能是一致的、 不过因为其 更加底层 所以 CALayer 有一些接口、 UIView 里面没有。

CALayer与UIView

UIView:用于管理视图的容器。每次创建UIView对象时,UIView对象就会在内部创建一个层(CALayer),通过这个层实现显示功能。

CALayer:实际用于显示的层,但是它不具备事件响应能力。

CALayer具有更好的性能,资源消耗少,如果我们只做显示功能可以考虑使用CALayer及其子类来优化性能。

CALayer的使用

1. 使用UIView的layer属性,设置特殊效果。

例:

- (void) initView {
    UIView* view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    view.backgroundColor = [UIColor redColor];
    // layer边框宽度
    view.layer.borderWidth = 10;
    // layer边框颜色(这是CGColor)
    view.layer.borderColor = [UIColor blueColor].CGColor;
    // layer的圆角半径大小
    view.layer.cornerRadius = 20;
    // 设置阴影颜色(CGColor)
    view.layer.shadowColor = [UIColor grayColor].CGColor;
    // 设置阴影偏移量,正数在左,负数在右
    view.layer.shadowOffset = CGSizeMake(10, 10);
    // 设置阴影的显示程度
    view.layer.shadowOpacity = 0.3;
    // 剪切掉多余部分,但是如果设置了阴影,阴影也会被剪切。
//    view.layer.masksToBounds = YES;
    
    [self.view addSubview:view];
}

效果展示:
在这里插入图片描述

2. 使用CALayer单独显示内容。

这里介绍下CALayer的position属性和anchorPoint属性。

position属性是指定位点的位置,类似center。

anchorPoint属性决定CAlayer上的哪一个点会成为定位点。它以原点为(0, 0),其(x, y)取值都是0~1。

anchorPoint定位点的计算方法是比例计算,比如默认值(0.5, 0.5),意思就是从原点出发,这个点的位置在x总长的一半,y总长的一半,即中心点。而position属性指的就是这个点在父图层上的位置。

简单使用CALayer显示一个红色的图层

代码:

- (void) initCALayer {
    CALayer* layer = [CALayer layer];
    // 跟这里也是CGColor
    layer.backgroundColor = [UIColor redColor].CGColor;
    // 设置宽✖️高
    layer.bounds = CGRectMake(0, 0, 100, 100);
    // 设置位置
    layer.position = CGPointMake(100, 100);
    // 设置锚点
    layer.anchorPoint = CGPointMake(0, 0);
    
    [self.view.layer addSublayer:layer];
}

效果图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/114894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

当我阳了之后是如何用Python来自动买药的

人生苦短,我用Python序言准备工作代码实战序言 哈喽兄弟们,我是郑再阳,马上要成杨过了! 读者:在下羊了个羊! 最近总是听说哪里哪里阳了,哪个公司又团灭了,emmm~ 于是乎看了几天后…

【exgcd】扩展欧几里得

主要介绍扩展欧几里的和总结一些常用性质 首先介绍裴蜀定理 对于任意整数a,b,存在一对整数x,y 满足 axbygcd(a,b) 即存在x0,y0使得ax0by0gcd(a,b) 扩展欧几里得可以求出x0,y0 从而当axbyc 可以求出其通解 设dgcd(a,b) 显然当c%d!0时无整数解 通解可以表示为 x(c/d)x0k…

Java项目:springboot访客管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 springboot搭建的访客管理系统,针对高端基地做严格把控来访人员信息管理,用户后端可以设置多个管理员帐号,给…

力扣(LeetCode)207. 课程表(C++)

拓扑排序 根据示例看出,课程表是否存在环,是问题的关键。这题的环,和数组、链表的环不一样,不好判,要转化成图判拓扑序列。 考虑向右和向左的方向,拓扑序列的所有边可以指向同一方向。 无环图进行重排序…

论文阅读Measuring Regularity of Individual Travel Patterns

这是一篇发表在IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS上的论文,论文主要描述了一种刻画出行规律性的方法。 1.论文概述 论文主要描述了一种刻画出行规律性的方法。首先,论文给出了对出行活动序列(travel event&#xff…

因果推断3--DRNet(个人笔记)

目录 Learning Counterfactual Representations for Estimating Individual Dose-Response Curves 1介绍 2相关工作 3方法 4实验 5结果和讨论 6结论 7理解 论文标题 Learning Counterfactual Representations for Estimating Individual Dose-Response Curves 收录会…

深度学习-AlexNet(第一个深度卷积网络)

文章目录简介数据集模型搭建模型训练模型测试前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 AlexNet是第一个深度卷积网络模型,赢得了2012年ImageNet图像分类竞赛的冠军…

Java项目:springboot销售团队后台管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 该项目为后管系统,主要功能包括: 看板、业务机会管理、客户管理、联系人管理、我的日报、团队日报、主数据管理&#x…

【Linux】进程间通信之共享内存

目录🌈前言🌸1、System V共享内存🍡1.1、概念🍢1.2、原理🌺2、共享内存相关函数和指令🍡2.1、shmget函数(创建)🍢2.2、shmctl函数(控制)&#x1f…

TCP 的重传机制、选择确认、缓存与流量控制、连接管理、拥塞控制(计算机网络-运输层)

目录 TCP 的重传机制 TCP 的选择确认 TCP 的缓存与流量控制 TCP 的连接管理 TCP的拥塞控制 TCP 的重传机制 TCP 每发送一个报文段就设置一个超时计时器; TCP 使用指数加权移动平均算法计算 RTT 及其偏差的估计值,并据此计算超时重传时间&#xff1b…

8 NP完全性理论

8 NP完全性理论 p问题 NP问题 NP完全问题 NPC(complete ) NP难问题NP-hard p问题 是一类能够用**(确定的)算法**在多项式时间内求解的可判定问题 ●这种问题类型也称为多项式类型 NP问题 是一类能够用不确定算法在多项式时间内求解的可判定问题 在确定性计算模型下多项式时…

程序员高手解决问题,都是从正确的提问开始

回顾各大技术网站、社区、问答,我们发现:真正的程序员高手都极度擅长提问。 好的提问不但能得到建设性的解决方案,更加能激发人们的好奇心、创造力和学习的动力。 毫不夸张地说,会提问的程序员一开口就赢了! 所以今…

HashMap源码剖析(下)——java集合

系列文章目录 文章目录系列文章目录前言一、 回顾总结二、HashMap数据插入流程JDK1.8 HashMap的put方法源码如下:2.1 扩容机制2.2 链表树化2.3 红黑树转链三、查找总结四、删除五、遍历前言 既上一节内容 本节内容是,HashMap还有基本的数据功能;存储、删…

(三)GNSS定位中的定位系统和误差源

翻看了一下记录,离上一次GNSS内容的更新已经过去9个月了。时间过的太快,硕士生涯已经过去一半,有遗憾也有收获,过去的9个月经历了各种喜怒哀乐以及迷茫。永远相信美好的事情即将发生,GO LONG CHINA! 今天写…

魅族大会公布未来多项规划!全场景门店、旗舰新品明年将落地

如果说中国手机行业中哪个品牌的粉丝忠诚度最高,那恐怕魅族说第二,也没几家敢说第一。这些年来,虽然魅族手机经历风风雨雨,但依然有着非常庞大的粉丝基础。前不久刚刚结束的魅友大会2022大会现场人潮涌动,随着天南海北…

Linux系统下的常用查找指令及用法

find指令&#xff1a;将从指定目录向下递归地遍历其各个子目录&#xff0c;将满足条件的文件或者目录显示在终端&#xff0c; 语法&#xff1a;find[搜索范围][选项] 方式作用-name<查询方式>按照指定的文件名查找模式查找文件-user<用户名>查找属于指定用户名所有…

Java项目:springboot教务管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 1.系统默认超级管理员账号为admin&#xff0c;默认密码为123456 系统配置&#xff1a;用户管理、角色管理、权限管理 默认已配置好基本数据&…

4.3.2、分类编址的 IPv4 地址

分类编址的 IPv4 地址分为 A、B、C、D、E 五类 A 类地址的网络号部分占 888 比特&#xff0c;主机号部分占 242424 比特。网络号的最高位固定为 000B 类地址的网络号部分占 161616 比特&#xff0c;主机号部分占 161616 比特。网络号的最高两位固定为 101010C 类地址的网络号部…

Reason: CORS request did not succeed 浏览器

放上我的错误&#xff1a; 一定要坚信他给你的提提示&#xff01;&#xff01;&#xff01;一定要怀疑是浏览器的设置 因为我试过网上的两种方法&#xff0c;均无效 法一&#xff1a;将Access-Control-Allow-Origin设置为&#xff1a;* 法二&#xff1a;因为我使用的是vue3&…

深度学习——转置卷积(笔记)

1.卷积层和汇聚层通常会减少下采样输入图像的空间维度&#xff08;高和宽&#xff09;&#xff0c;语义分割对输入进行像素级别的输出&#xff0c;但是卷积会不断减小高宽&#xff0c;不利于像素级别的输出。通过转置卷积能增大输入的高和宽 2.具体操作&#xff1a;步幅为1没有…