zoukankan      html  css  js  c++  java
  • 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属性值不是乱写的.苹果文档当中给了相关的属性.

  • 相关阅读:
    软件测试 -- alpha测试和beta测试的区别
    软件测试--各种测试的概念
    linux 安装memcached
    Visual Studio 2013 Preview
    基于HAL库STM32的FSMC驱动8位TFTLCD屏
    LM358电压跟随器
    广耦的应用
    MOS管的开关作用
    三极管的开关作用
    STM32的BOOT0 BOOT1的选择
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/7043661.html
Copyright © 2011-2022 走看看