当前位置: 首页 > news >正文

iOS UI进阶-2.0 CALayer

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

UIView和CALayer的选择

通过CALayer,就能做出跟UIImageView一样的界面效果。既然CALayer和UIView都能实现相同的显示效果,那究竟该选择谁好呢?
  • 对比CALayer,UIView多了一个事件处理的功能。也就是说,CALayer不能处理用户的触摸事件,而UIView可以。
  • 如果显示出来的东西需要跟用户进行交互的话,用UIView;
  • 如果不需要跟用户进行交互,用UIView或者CALayer都可以
  • 当然,CALayer的性能会高一些,因为它少了事件处理的功能,更加轻量级

 

更详细的使用说明,请参考下面的博客

CALayer1-简介:http://www.cnblogs.com/mjios/archive/2013/04/13/3019335.html

CALayer2-创建新的层:http://www.cnblogs.com/mjios/archive/2013/04/14/3019728.html

CALayer3-层的属性:http://www.cnblogs.com/mjios/archive/2013/04/14/3020291.html

CALayer4-自定义层:http://www.cnblogs.com/mjios/archive/2013/04/14/3020975.html

 

 

相关文章:

  • 机器学习---学习首页
  • Javascript和OCX的结合历程
  • 解析微信开发之搜索歌曲
  • rhel 6.5 x86_64 配置centos yum源
  • C/C++连接MySql数据库
  • 【转】【Linux】 临界区,互斥量,信号量,事件的区别
  • LA 2038 Strategic game(最小点覆盖,树形dp,二分匹配)
  • VMWare下虚拟机NAT共享方式上网的配置说明
  • hadoop中遇到的问题。
  • Android基础小技术点:Android ListView设置背景图片及分割线、周边距
  • 结构体
  • zabbix vfs.fs.discovery过滤
  • 主键生成
  • RDVTabBarController--可自由定制的iOS底部导航控件
  • 智能园区报修系统可行性分析
  • 深入了解以太坊
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 03Go 类型总结
  • Consul Config 使用Git做版本控制的实现
  • Cumulo 的 ClojureScript 模块已经成型
  • DataBase in Android
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • js 实现textarea输入字数提示
  • MD5加密原理解析及OC版原理实现
  • MySQL主从复制读写分离及奇怪的问题
  • SQLServer之索引简介
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 从零开始在ubuntu上搭建node开发环境
  • 订阅Forge Viewer所有的事件
  • 回顾2016
  • 近期前端发展计划
  • 老板让我十分钟上手nx-admin
  • 七牛云假注销小指南
  • 前端
  • 双管齐下,VMware的容器新战略
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 小程序开发之路(一)
  • 在Docker Swarm上部署Apache Storm:第1部分
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 2017年360最后一道编程题
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • #1014 : Trie树
  • #laravel 通过手动安装依赖PHPExcel#
  • #pragam once 和 #ifndef 预编译头
  • (06)Hive——正则表达式
  • (C语言)fgets与fputs函数详解
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (二)丶RabbitMQ的六大核心
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (三)Honghu Cloud云架构一定时调度平台
  • (十)T检验-第一部分
  • (四)Linux Shell编程——输入输出重定向