zoukankan      html  css  js  c++  java
  • CALayers详解

    为什么说 CALayer 很重要呢:
     
    1. 每个UIView 都有 CALayer,即 UIView.layer,同时 UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它,所以,CALayer 应用很广泛
     
    2. CALayer 能够对 UIView 做许多设定,如:阴影、边框、圆角和透明效果等,且这些设定都是很有用的
     
     
    下面就逐个过下 CALayer 的一些重要属性:
     
    1. shadowPath : 设置 CALayer 背景(shodow)的位置
     
    2. shadowOffset : shadow 在 X 和 Y 轴 上延伸的方向,即 shadow 的大小
     
    3. shadowOpacity : shadow 的透明效果
     
    4. shadowRadius : shadow 的渐变距离,从外围开始,往里渐变 shadowRadius 距离
     
    5. masksToBounds : 很重要的属性,可以用此属性来防止子元素大小溢出父元素,如若防止溢出,请设为 true
     
    6. borderWidth 和 boarderColor : 边框颜色和宽度,很常用
     
    7. bounds : 对于我来说比较难的一个属性,测了半天也没完全了解,只知道可以用来控制 UIView 的大小,但是不能控制 位置
     
    8. opacity : UIView 的透明效果
     
    9. cornerRadius : UIView 的圆角
     
     
    测试代码:
     
    复制代码
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        UIView *viewSample = [[UIView alloc] init];
        [self.view addSubview:viewSample];
     
        viewSample.backgroundColor = [UIColor greenColor];
        viewSample.frame = CGRectMake(100, 100, 400, 400);
        
        
        //Test 1 阴影
        //viewSample.layer.shadowPath = [UIBezierPath bezierPathWithRect:viewSample.bounds].CGPath;
        viewSample.layer.shadowPath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, 400, 400)].CGPath;
        viewSample.layer.masksToBounds = NO;
        viewSample.layer.shadowOffset = CGSizeMake(10, 10);
        viewSample.layer.shadowRadius = 5;
        viewSample.layer.shadowOpacity = 0.5;
        
        //Test 2 边框
        viewSample.layer.borderWidth = 2;
        viewSample.layer.borderColor = [[UIColor redColor] CGColor];
        
        //Test 3 masksToBounds
        UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0,0, 500, 500)];
        btn.backgroundColor = [UIColor lightGrayColor];
        //[viewSample addSubview:btn];
        //viewSample.layer.masksToBounds = true;
        
        
        //Test 4 bounds
        //viewSample.layer.bounds = CGRectMake(200, 200, 500, 500);
     
        
        //Test 5
        viewSample.layer.opacity = 0.5;
        viewSample.layer.cornerRadius = 5;
    }
  • 相关阅读:
    17个Web前端开发工程师必看的国外网站
    CSS 绘制三角形气泡框
    Javascript冒泡事件
    页面文本框的只读属性readonly的设置与使用focus-blur事件方法的区别
    javascript中的类型的准确检测
    认识Console,调试Javascript
    仿美团页面
    EDM开发之四:错误记录
    EDM开发之一:系统概述
    EDM开发之二:SMTP服务器
  • 原文地址:https://www.cnblogs.com/AbelChen1991/p/3626951.html
Copyright © 2011-2022 走看看