view and view hierarchy
2016-04-19 10:38
316 查看
一,view basics
1,基类UIView
2,view提供渲染和事件的功能
3,每个view都存在一颗view树中,它的最底部是UIWindow
二,view树
1,每个view都会渲染到它对应的layer(CALayer),这个layer相对于一块buffer
是否正确?是否layer只是一块逻辑Buffer?
2,最终所有的layer会合成一张到屏幕上
三,view and frame
1,UIView的frame提供view的大小和相对于父组件的位置,类型为CGRect;
使用CGRectMake创建一个CGRect
2,backgroundColor设置view的背景
view.backgroundColor = [UIColor redColor];
四,自定义渲染
1,override drawRect:方法
2,渲染区域是类型为CGRect的bounds对象,它基于view本身的坐标系系统,而frame是相对于父组件的坐标系系统
3,使用UIBezierPath类设置绘制圆
4,通过UIBezierPath的lineWidth设置线宽
5,通过UIColor设置线的颜色值,其实它是状态机
6,通过UIBezierPath的stroke来进行path的绘制
五,2D渲染库Core Graphics,类似于android的skia
1,用c语言实现的2D渲染库, 模拟面向对象的方式实现
2,它最重要的2个“对象”:渲染context以及渲染buffer
3,ARC内存管理机制无法管理CG对象,所以要自己管理内存
六,绘制阴影和颜色渐进
1,目前上层没封装实现,所以必须使用CG库
2,添加阴影和渐进实际上是添加绘制状态
3,context可以保存和恢复,这点和opengl状态机类似,实际上context本质上就是状态机
1,基类UIView
2,view提供渲染和事件的功能
3,每个view都存在一颗view树中,它的最底部是UIWindow
二,view树
1,每个view都会渲染到它对应的layer(CALayer),这个layer相对于一块buffer
是否正确?是否layer只是一块逻辑Buffer?
2,最终所有的layer会合成一张到屏幕上
三,view and frame
1,UIView的frame提供view的大小和相对于父组件的位置,类型为CGRect;
使用CGRectMake创建一个CGRect
2,backgroundColor设置view的背景
view.backgroundColor = [UIColor redColor];
四,自定义渲染
1,override drawRect:方法
2,渲染区域是类型为CGRect的bounds对象,它基于view本身的坐标系系统,而frame是相对于父组件的坐标系系统
3,使用UIBezierPath类设置绘制圆
4,通过UIBezierPath的lineWidth设置线宽
5,通过UIColor设置线的颜色值,其实它是状态机
6,通过UIBezierPath的stroke来进行path的绘制
五,2D渲染库Core Graphics,类似于android的skia
1,用c语言实现的2D渲染库, 模拟面向对象的方式实现
2,它最重要的2个“对象”:渲染context以及渲染buffer
3,ARC内存管理机制无法管理CG对象,所以要自己管理内存
六,绘制阴影和颜色渐进
1,目前上层没封装实现,所以必须使用CG库
2,添加阴影和渐进实际上是添加绘制状态
3,context可以保存和恢复,这点和opengl状态机类似,实际上context本质上就是状态机
相关文章推荐
- 字符编码ASCII, Unicode和UTF-8概念扫盲
- 关于Android Studio里的Gradle,你所需要知道的都在这里了
- HTML元素特性的操作方法
- Chomsky文法类型判断
- Android拍照或相册获取照片上传 (带图片剪裁)
- POJ 2594 Treasure Exploration 最短路+二分图
- 前端综合
- 我的mysql触发器笔记
- 南京理工大学第八届程序设计大赛 #J WATER1 Solution
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
- mybatis学习笔记03--与spring集成
- 搭建ubuntu + storm集群的一些注意日志
- iOS 中的 Deferred Deep Linking(延迟深度链接)
- 用javascript实现网站首页轮播图效果
- jq之简单的表单验证
- SDAutoLayout:比masonry更简单易用的自动布局库
- python和c#通用一致的des加密采用CBC和PKCS7
- 剑指offer 栈的压入、弹出序列
- VB 监听U盘插入并拷贝U盘内容
- JavaScript中创建对象的模式汇总