CALayer
来源:互联网 发布:js string转timestamp 编辑:程序博客网 时间:2024/06/07 17:38
CALayer图层https://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/CALayer_class/index.htmlAPI
CALayer是一个层的概念,视图之所以能够显示,都是因为这个层的原因但CALayer 不清楚具体的响应链(不能相应用户的点击触摸等事件).通过CALayer我们可以给UIView添加动画,还可以改变它的形状,边框宽度,颜色等。
CALayer的两个重要属性position用来设置CALayer在父层中的位置,以父层左上角(0,0)
anchorPoint(定位点、锚点)决定CALayer上的点在父层中position所指的位置,以自己的左上角(0,0), 它的x、y取值范围都是0 ~1 默认只为(0.5 ,0.5)锚点在CALayer的中间
CALayer有一个控制图层角的曲率属性conrnerRadius ,默认情况下这个曲率只影响背景颜色不影响背景图片或是子图层 ,如果吧masksToBounds设置为YES时图层里面的所有东西都会被截取。
CALayer的简单使用
//改变形状
UIView *myview = [[UIViewalloc]initWithFrame:CGRectMake(10,20, 100,200)];
myview.layer.backgroundColor = [UIColororangeColor].CGColor;
//边框的颜色
myview.layer.borderColor = [UIColorgreenColor].CGColor;
//边框的宽度
myview.layer.borderWidth =5;
//允许设置圆角
myview.layer.masksToBounds =YES;
//允许设置圆角
// myview.clipsToBounds = YES;
myview.layer.cornerRadius =10;
[self.windowaddSubview:myview];
UIView *myview1 = [[UIViewalloc]initWithFrame:CGRectMake(100,250, 100,200)];
myview1.layer.backgroundColor = [UIColorgreenColor].CGColor;
[self.windowaddSubview:myview1];
//通过transform这个key创建一个动画
CABasicAnimation *basic = [CABasicAnimationanimationWithKeyPath:@"transform"];
//第一个:弧度 第二个:x轴 第三个:y轴 第四个:z轴
basic.toValue = [NSValuevalueWithCATransform3D:CATransform3DMakeRotation(3.1415,1.0, 0,0)];//3D动画,旋转180度,以y为轴旋转
basic.duration =2;//持续时间
basic.repeatCount =2;//重复次数
basic.cumulative =YES;//是否继续接着执行
//注意:动画是添加到layer上面
[myview1.layeraddAnimation:basic forKey:@"animation"];
//注意:不能马上将动画移除
// [myview1.layer removeAnimationForKey:@"animation"];
//注意:两次动画会合并在一起执行
CABasicAnimation *basic1 = [CABasicAnimationanimationWithKeyPath:@"transform"];
basic1.toValue = [NSValuevalueWithCATransform3D:CATransform3DMakeRotation(3.1415,0, 0,1.0)];
basic1.duration =2;
basic1.repeatCount =2;
basic1.cumulative =YES;//是否继续接着执行
[myview1.layeraddAnimation:basic1 forKey:@"animatio1"];
自定义图层
//创建一个图层
CALayer *layer = [CALayerlayer];
//设置尺寸
layer.bounds =CGRectMake(0,0, 100,100);
//设置位置
layer.position =CGPointMake(100,100);
//设置颜色
layer.backgroundColor = [UIColorredColor].CGColor;
//设置内容
layer.contents = (__bridgeid)[UIImageimageNamed:@"imageName"].CGImage;
[self.view.layeraddSublayer:layer];
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- CALayer
- sed命令详解
- 函数时间复杂度的计算详解(转自CSDN)
- 直播推流端网络优化策略
- php基础语法之函数篇
- ros的技术准备
- CALayer
- myeclipse各菜单项说明
- 根据MAC地质反查IP工具-LanHelper
- 桥接模式和代理模式的区别
- sort,uniq,cut,wc命令详解
- Maven 修改本地库和国内库镜像
- java--04
- Java处理excel两种不同的方式
- 微信自定义分享功能