CALayer和position和anchorPoint
来源:互联网 发布:淘宝代运营提成几个点 编辑:程序博客网 时间:2024/05/01 22:11
CALayer和position和anchorPoint
CALayer :负责视图中显示内容和动画
UIView:负责监听和响应事件
UIVIew创建的时候,会自动创建一个图层,图形都会绘制在上面,然后复制一份给屏幕,就完成了view的显示;
CALayer的属性:
self.imageView.layer.borderwidth=5;边框宽度
borderColor=[UIColor redColor].CGcolor;边框颜色
Cornerradius=50;圆角
layer.maskToBounds=YES;超出部分裁剪掉;
layer.shadowcolor;阴影颜色;
layer.shadowOffset=CGSizeMake(10,10);阴影偏移
layer.shadowopacity=0.5;阴影透明度;
layer.shadowRadius=10;阴影模糊度;
如果要出现带阴影的圆环,需要绘图操作;
=======================
手动创建layer图层添加到view的图层上
//手工创建CALayer
CALayer * redLayer = [CALayerlayer];
//设置背景颜色
redLayer.backgroundColor = [UIColorgreenColor].CGColor;
//设置frame position可以理解为center
redLayer.position = CGPointMake(200, 200);
redLayer.bounds = CGRectMake(0, 0, 100, 100);
//添加
[self.view.layeraddSublayer:redLayer];
//设置圆角
// redLayer.cornerRadius = 50;
//设置透明度 (0---1)
// redLayer.opacity = 0.3;
//设置内容
redLayer.contents = (__bridgeid_Nullable)([UIImageimageNamed:@"img01"].CGImage);
//设置圆角
redLayer.cornerRadius = 50;
//加边框
redLayer.borderWidth = 5;
redLayer.borderColor = [UIColorredColor].CGColor;
redLayer.masksToBounds= YES;
position和anchorPoint的区别
//手工创建
CALayer * myLayer = [[CALayeralloc]init];
//设置背景颜色
myLayer.backgroundColor = [UIColorredColor].CGColor;
//设置位置和大小
myLayer.position = CGPointMake(50, 50);
myLayer.bounds = CGRectMake(0, 0, 100, 100);
//设置锚点 (position决定layer在父视图的位置 anchorPoint决定了position在自身的位置) anchorPoint的取值范围 (0---1) 默认 (0.5,0.5)
myLayer.anchorPoint = CGPointMake(0, 1);
[self.view.layeraddSublayer:myLayer];
=========================
calayer 的transform属性
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//手工创建
CALayer * redLayer = [CALayerlayer];
//设置背景颜色
redLayer.backgroundColor = [UIColorredColor].CGColor;
//位置和大小
redLayer.position = CGPointMake(100, 100);
redLayer.bounds = CGRectMake(0, 0, 100, 100);
[self.view.layeraddSublayer:redLayer];
self.redLayer = redLayer;
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
//旋转
// self.redLayer.transform = CATransform3DRotate(self.redLayer.transform, M_PI_4, 1, 1, 0);
// self.redLayer.transform = CATransform3DMakeRotation(M_PI_4, 0, 0, 1);
//KVC
// NSValue * value = [NSValue valueWithCATransform3D:CATransform3DRotate(self.redLayer.transform, M_PI_4, 100, 0, 0)];
//
// [self.redLayer setValue:value forKeyPath:@"transform"];
[self.redLayersetValue:@(M_PI_4)forKeyPath:@"transform.rotation.x"];
}
- (void) test02
{
//缩放
// self.redLayer.transform = CATransform3DScale(self.redLayer.transform, 1, 1, 0.5);
// self.redLayer.transform = CATransform3DMakeScale(0.5, 0.5, 1);
//KVC
// NSValue * value = [NSValue valueWithCATransform3D:CATransform3DScale(self.redLayer.transform, 0.5, 0.5, 1)];
//
// [self.redLayer setValue:value forKeyPath:@"transform"];
[self.redLayersetValue:@0.5forKeyPath:@"transform.scale.x"];
}
- (void) test01
{
//平移
// self.redLayer.transform = CATransform3DTranslate(self.redLayer.transform, 50, 0, 0);
// self.redLayer.transform = CATransform3DMakeTranslation(50, 50, 0);
//KVC
// NSValue * value = [NSValue valueWithCATransform3D:CATransform3DTranslate(self.redLayer.transform, 50, 50, 0)];
//
// [self.redLayer setValue:value forKeyPath:@"transform"];
// [self.redLayer setValue:@50 forKeyPath:@"transform.translation.y"];
}
- CALayer和position和anchorPoint
- CALayer的position和anchorPoint
- CALayer的position和anchorPoint
- CALayer的anchorPoint和position
- CALayer中anchorPoint和position的用法
- CALayer中anchorPoint和position的用法
- CALayer中anchorPoint和position的用法
- IOS CALayer中的position 和 anchorPoint
- CAlayer层的属性position和anchorPoint
- iOS CALayer中position和anchorPoint的联系和区别
- iOS开发19-iOS CALayer的position和anchorPoint
- AnchorPoint和Position
- position和anchorPoint
- position和anchorPoint
- position和anchorPoint
- CALayer与UIView的选择,CALayer的anchorPoint和position研究
- ios-day18-03(CALayer的两个属性position和anchorPoint(锚点))
- Core Animation研究系列 : CALayer中anchorPoint和position的用法
- 计算机4级考试信息整理
- js 的ArrayList
- Linux 下IO端口编程访问
- R语言第二章 数组、数组框、文本读、循环语句使用
- Problem F
- CALayer和position和anchorPoint
- bzoj 3196: Tyvj 1730 二逼平衡树
- php+nginx 上传文件大小限制要修改的文件
- ios开发总结之UITableView常用属性和方法
- C++继承
- Matlab变量及其含义
- 二叉搜索树的后序遍历序列
- Android学习之路
- 《疯狂的程序员》经典语录