IOS图像3之Layer层的使用

本文详细介绍了UIView与CALayer的区别及联系,解释了UIView如何通过CALayer实现丰富的视觉效果,如边框、圆角、阴影及3D旋转等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里我们先看看下面的效果:


UIView的继承结构如下:UIResponder : NSObject

因此可以看出UIView是可以响应事件的。而CALayer是继承NSObjrct的。所以一般来说UIView都是用来响应用户事件。UIView是用来显示界面,而CALayer是用来绘制界面的。每个UIView都会有一个CALayer与之相对应。同时CALayer还可以实现很多UIView不容易实现的功能。

常见的有如下属性:

边框宽度: borderWidth 边框颜色:borderColor 圆角半径:cornerRadius

阴影偏移量:shadowOffset 超出部分裁剪:masksToBounds

锚点以及3D旋转效果的实现:


核心代码:

    self.iconView.layer.anchorPoint = CGPointMake(0, 1);

    self.iconView.layer.transform = CATransform3DMakeRotation(M_PI_4*slider.value, 0, 1, 0);

首先要明白锚点的作用:

3D旋转的时候 有一个旋转轴的问题。默认这个CATransform3DMakeRotation 后面三个跟的是一个向量。默认锚点是在整个view的中位置。为(0.5 0.5 )因此这里如果想要沿着边边旋转,必须要设置新的锚点。

同时由于锚点的位置改变了,所以整个图片的frame的位置也改变了。Frame 的位置是依赖于锚点的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值