CALayer的基本操作

1.CALayer简介:
        CALayer我们又称它叫做层.
        在每个UIView内部都有一个layer这样一个属性.
        UIView之所以能够显示,就是因为它里面有这个一个层,才具有显示的功能.
        我们通过操作CALayer对象,可以很方便地调整UIView的一些外观属性.
        可以给UIView设置阴影,圆角,边框等等...
        
    2.操作layer改变UIView外观.
    
        2.1.设置阴影
        默认图层是有阴影的, 只不过,是透明的
        _RedView.layer.shadowOpacity = 1;
        设置阴影的圆角
        _RedView.layer.shadowRadius  =10;
        设置阴影的颜色,把UIKit转换成CoreGraphics框架,用.CG开头
        _RedView.layer.shadowColor = [UIColor blueColor].CGColor;
        
        2.2.设置边框
        设置图层边框,在图层中使用CoreGraphics的CGColorRef
        _RedView.layer.borderColor = [UIColor whiteColor].CGColor;
        _RedView.layer.borderWidth = 2;

2.3.设置圆角
        图层的圆角半径,圆角半径为宽度的一半, 就是一个圆
        _RedView.layer.cornerRadius = 50;
        
    3.操作layer改变UIImageView的外观.
        
        设置图形边框
        _imageView.layer.borderWidth = 2;
        _imageView.layer.borderColor = [UIColor whiteColor].CGColor;
        
        
        设置图片的圆角半径
        _imageView.layer.cornerRadius = 50;
        裁剪,超出裁剪区域的部分全部裁剪掉
        _imageView.layer.masksToBounds = YES;
        注意:UIImageView当中Image并不是直接添加在层上面的.这是添加在layer当中的contents里.
        我们设置层的所有属性它只作用在层上面.对contents里面的东西并不起作用.所以我们看不到图片有圆角的效果.
        想要让图片有圆角的效果.可以把masksToBounds这个属性设为YES,
        当设为YES,把就会把超过根层以外的东西都给裁剪掉.
        
    4.layer的 CATransform3D属性.
      
      只有旋转的时候才可以看出3D的效果.
      旋转
      x,y,z 分别代表x,y,z轴.
      CATransform3DMakeRotation(M_PI, 1, 0, 0);
      平移
      CATransform3DMakeTranslation(x,y,z)
      缩放
      CATransform3DMakeScale(x,y,z);
      
      可以通过KVC的方式进行设置属性.
      但是CATransform3DMakeRotation它的值,是一个结构体, 所以要把结构转成对象.
      NSValue *value = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI, 1, 0, 0)];
      [_imageView.layer setValue:value forKeyPath:@"transform.scale"];
     
     
      什么时候用KVC?
      当需要做一些快速缩放,平移,二维的旋转时用KVC.
      比如: [_imageView.layer setValue:@0.5 forKeyPath:@"transform.scale"];
      快速的进行缩放.
      后面forKeyPath属性值不是乱写的.苹果文档当中给了相关的属性.

时间: 2024-11-03 03:44:16

CALayer的基本操作的相关文章

01-CALayer的基本操作

*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: pointer; position: absolute

CALayer与UIBezierPath

UIView继承于UIResponder CALayer继承于nsobject 创建UIView创建一个layer,通过UIView的layer属性可依访问它的图层.UIView具有事件处理功能,可以与用户交互,layer负责显示和动画任务. 要显示一个UIView,会自动调用起drawRect方法绘画所有内容,然后字啊将图层拷贝到屏幕上,完成UICView的显示. frame不能作动画  修改大小bounds  修改位子position CALayer不能直接使用UIColer.UIImage

CALayer 与 UIView

1.关系 On iOS, every UIView is backed by a Core Animation CALayer. Simply speaking,UIView inherit from NSResponder,handle events from users, contains CALayer,which inherit from NSObject,mainly focus on rendering,animation etc. One thing UIViews provide

CALayer初认识

CALayer :CA就是coreAnimation 核心动画 它是同时支持 Mac OS 和 iOS系统的 所有的核心动画都是通过CALayer来实现的 UIView本身是不具备显示功能的 是它内部的layer层才有显示功能 UIView之所以能被看到 就是因为内部层的存在: CZLayer的功能: 可以设置阴影 圆角大小 边框宽度和背景颜色 可以给图层添加动画 实现一些比较炫酷的效果 czlayer与uiview的比较 共同点 都能尽兴界面展示 不同点 CALayer不接收用户的触摸事件 u

<二叉树的基本操作>

#include<stdio.h> #include<stdlib.h> #include<string.h> #define num 100 #define OK 1 typedef int Status; typedef char DataType; typedef struct node { DataType data; struct node *lchild,*rchild; }BinTNode,*BinTree; Status CreateBiTree(Bin

通过 CALayer 修改 UIImageView 的界面属性

界面属性的修改是每一个开发者必须知道的,为什么我就记不住呢, shit, 又耽误了时间,为了防止再找不到,特把一些常用的 CALayer属性记在这里,顺便分享 1.设置阴影 1 imageView.layer.shadowColor = [UIColor grayColor].CGColor; 2 imageView.layer.shadowOffset = CGSizeMake(10, 10); 3 imageView.layer.shadowOpacity = 0.5; * 第1行设置阴影的

CALayer的使用

CALayer简介 1.CALayer一般作为UIView的容器而使用 2.CALayer是一个管理着图片载体(image-based content)的层结构 3.直接修改单独创建出的CALayer的属性可以出发隐式动画 4.UIView中的CALayer动画必须显示出发才能生效 CALayer实现自定义进度条 - (void)viewDidLoad { [super viewDidLoad]; UIView *containerView = [[UIView alloc] initWithF

iOS_UITextField 基本操作

基本操作 UITextField *userNameTextField = [[UITextField alloc] init]; userNameTextField.frame = CGRectMake(30, 100, 220, 50); [self.window addSubview:userNameTextField]; [userNameTextField release]; // 设置样式 userNameTextField.borderStyle = UITextBorderSty

Mongodb入门系列(4)——Mongodb体系结构与客户端基本操作及注意细节

说到Mongodb的体系结构,免不了与关系型数据库做个对比.这里以MySQL为例,我们进行一些比较: 从逻辑结构上对比: MySQL层次概念 MongoDB层次概念 数据库(database) 数据库(database) 表(table) 集合(collection) 记录(row) 文档(document) 在MongoDB中没有行.列.关系的概念,集合中的文档相当于一条记录,这体现了模式自由的特点. 从数据存储结构上对比: MySQL的每个数据库存放在一个与数据库同名的文件夹中,MySQL如