CALayer 学习01

一。什么事CALayer

  1. 在iOS系统中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。
  2. 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个层。
  3. 在创建UIView对象时,UIView内部会自动创建一个层(即CALayer对象),通过UIView的layer属性可以访问这个层。当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的层上,绘图完毕后,系统会将层拷贝到屏幕上,于是就完成了UIView的显示。

换句话说,UIView本身不具备显示的功能,是它内部的层才有显示功能。

二。CALayer 的简单实用

上面已经说过了,UIView之所以能够显示,完全是因为内部的CALayer对象。因此,通过操作这个CALayer对象,可以很方便地调整UIView的一些界面属性,比如:阴影、圆角大小、边框宽度和颜色等。

1> 先创建一个UIView,添加到控制器的view中

 UIView* view = [UIView new];
    view.backgroundColor = [UIColor grayColor];
    view.frame = CGRectMake(10, 100, 100, 100);
    [self.view addSubview:view];

  

2> 设置阴影

  view.layer.shadowColor = [[UIColor redColor]CGColor];
    view.layer.shadowOffset = CGSizeMake(10, 10);
    view.layer.shadowRadius = 5;
    view.layer.shadowOpacity = 0.9;

  

* 第1行设置阴影的颜色为灰色,注意,这里使用的是UIColor的CGColor属性,是一种CGColorRef类型的数据

* 第2行设置阴影的偏移大小,可以看出阴影往原图的右下角偏移

* 第3行设置阴影的不透明度为0.5,表示半透明。如果为1,代表完全不透明。

3> 设置圆角大小

   view.layer.cornerRadius = 5;
    view.layer.masksToBounds = YES;

  

4> 设置边框宽度和颜色

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #3d1d81 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #703daa }
span.s1 { color: #000000 }
span.s2 { color: #703daa }
span.s3 { color: #6122ae }
span.s4 { }
span.s5 { color: #0435ff }

view.layer.borderColor = [[UIColor greenColor]CGColor];
    view.layer.borderWidth = 4;

  

5> 设置旋转

view.layer.transform = CATransform3DMakeRotation(M_PI_4, 1, 0, 1);

  

时间: 2024-10-15 02:25:59

CALayer 学习01的相关文章

OSX学习01之更新头像

前不久在官网上守株待兔,买了一个官翻版865,其实最想买294的,可是米不足啊——所以,在同时下了865和293的订单,并纠结了一天后,确定了865,剩余的钱够一个Mac mini了,如果不买也可以日后买iMac. 相关的内容等会儿写另一帖,废话就不说了. 拆机后简单的设置下账户信息,但是没觉得账户图片好看,又没发现又什么方式设置账户图片,纠结了很久. 本机没有什么图片,这时候可以先把图片下载下来再说. 进入系统偏好设置-->用户与群组-->当前用户,点击现有头像-->最近使用-->

概率论快速学习01:计数

2014-05-15 22:02 by Jeff Li 前言 系列文章:[传送门] 马上快要期末考试了,为了学点什么.就准备这系列的博客,记录复习的成果. 正文-计数  概率 概率论研究随机事件.它源于赌徒的研究.即使是今天,概率论也常用于赌博.随机事件的结果是否只凭运气呢?高明的赌徒发现了赌博中的规律.尽管我无法预知事件的具体结果,但我可以了解每种结果出现的可能性.这是概率论的核心. "概率"到底是什么?这在数学上还有争议."频率派"认为概率是重复尝试多次,某种结

ThinkPhp学习01

原文:ThinkPhp学习01 一.ThinkPHP的介绍           MVC  M - Model 模型                工作:负责数据的操作  V - View  视图(模板)        工作:负责前台页面显示  C - Controller 控制器(模块) 工作:描述功能 框架二.ThinkPHP的获取            http://www.thinkphp.cn三.ThinkPHP核心文件介绍      ├─ThinkPHP.php     框架入口文件 

Scala学习01 环境安装

Scala是一门运行在jvm上的多范式语言,作为一个java程序员,使用Scala来写写程序,既不用担心会没有java强大的库支持,又能快速地写出简短强悍的代码,除此之外scala还为我们提供了强大的并发支持,Let's love it! 安装 下面来看看如何安装它(在此之前,确保已经安装好了jdk,我使用的jdk1.7). 我们可以通过Scala的官网(http://www.scala-lang.org/download/)来下载Scala.我使用的版本是2.11.1. 将安装包下载在本地之后

pyqt listview基础学习01

from decimal import * from PyQt4.QtGui import * from PyQt4.Qt import * from PyQt4.QtCore import * import sys class Example(QWidget): def __init__(self,args=None): super(Example, self).__init__(args) list_data=[1,2,3,4] lm=MyListMode(list_data,self) s

HTML坦克大战学习01

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <canvas id="tankMap" width="400px" height="300px" style="background

HTML5 学习01

HTML的英语意思是:Hypertext Marked Language,即超文本标记语言,是一种用来制作超文本文档的简单标记语言. 所谓超文本,是因为它可以加入图片.声音.动画.影视等内容,事实上每一个 HTML 文档都是一种静态的网页文件,这个文件里面包含了 HTML 指令代码,这些指令代码并不是一种程序语言,它只是一种排版网页中资料显示位置的标记结构语言. ┣ 通过 HTML 可以表现出丰富多彩的设计风格: 图片调用:<IMG SRC="文件名"> 文字格式: <

Node.Js学习01: Module System 以及一些常用Node Module

Node.Js学习就按照这本书的流程来. 在第7章结束与第10章结束时分别自己出一个小项目练练手.Node.Js的入门学习计划是这样. 目录:, QQ:1045642972 欢迎来索书以及讨论Node.Js. Node.Js Demo Node.Js官网提供了一个最基本的Demo Code: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type':

《批处理在提高Windows管理效率中神奇应用》学习01

<批处理在提高Windows管理效率中神奇应用>学习 ::1.3 ::echo. 显示空行 ::数值范围循环的for循环 @echo off echo Creating file0.txt ~ file99.txt echo. echo. :: for /l %%n in (0,1,99) /l表示for语句在指定的数值范围内循环.范围由in决定 ::in (0,1,99) 表示从0开始,步长为1,到99结束(包含99) for /l %%n in (0,1,99) do ( echo %%n