1,UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到 UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认 ...
分类:
其他好文 时间:
2016-05-03 12:32:49
阅读次数:
98
一、UIView显示原理 一个控件,UIView之所以可以显示,是因为内部在UIView的内部有一个layer属性作为根图层,根图层上可以放其他子图层,在UIView中所有能够看到的内容都包含在layer中,当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制 ...
分类:
其他好文 时间:
2016-04-29 14:16:32
阅读次数:
146
一、CALayer绘图方式 Layer绘图有两种方法,不管使用哪种方法绘制完必须调用图层的setNeedDisplay方法(注意是图层的方法,不是UIView的方法,UIView的setNeedDisplay方法会调用drawRect:绘图) 通过图层代理drawLayer: inContext:方 ...
分类:
其他好文 时间:
2016-04-29 14:12:56
阅读次数:
98
首先两个方法都是异步执行。layoutSubviews方便数据计算,drawRect方便视图重绘。 layoutSubviews在以下情况下会被调用: 1、init初始化不会触发layoutSubviews。2、addSubview会触发layoutSubviews。3、设置view的Frame会触 ...
分类:
其他好文 时间:
2016-04-25 06:41:35
阅读次数:
137
UIView继承于UIResponder CALayer继承于nsobject 创建UIView创建一个layer,通过UIView的layer属性可依访问它的图层。UIView具有事件处理功能,可以与用户交互,layer负责显示和动画任务。 要显示一个UIView,会自动调用起drawRect方法 ...
分类:
其他好文 时间:
2016-04-23 00:00:39
阅读次数:
431
绘制一个UIVIew最灵活的方式就是由它自己完成绘制。实际上你不是绘制一个UIView,你只是子类化了UIView并赋予子类绘制自己的能力。当一个UIVIew需要执行绘图操作的时,drawRect:方法就会被调用。覆盖此方法让你获得绘图操作的机会。当drawRect:方法被调用,当前图形上下文也被设 ...
分类:
移动开发 时间:
2016-04-22 16:18:24
阅读次数:
244
//实现可以连续绘画, 不让画笔每次touchBegin时都重新初始化 - (UIBezierPath *)path { if (!_path) { _path = [UIBezierPath bezierPath]; } return _path; } - (void)drawRect:(CGRe ...
分类:
其他好文 时间:
2016-04-20 01:56:03
阅读次数:
136
1,UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到 UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认 ...
分类:
其他好文 时间:
2016-04-19 19:15:14
阅读次数:
122
http://stackoverflow.com/questions/19274408/drawinrectwithattributes-vs-drawinrectwithfontlinebreakmodealignment- (void)drawRect:(CGRect)frame{ NSMuta ...
分类:
移动开发 时间:
2016-04-18 16:56:46
阅读次数:
178
0. 复习。
1.基本图形绘制
* 线段(线宽、线段样式)
* 矩形(空心、实心、颜色)
* 三角形、四边形等形状
1> 说明 - (void)drawRect:(CGRect)rect
什么时候调用、调用次数等
- 当 view
第一次被显示的时候调用(调用一次)
- 或者是重绘事件被触发的时候
...
分类:
移动开发 时间:
2016-04-16 19:11:03
阅读次数:
199