1.对于以前一个误区进行纠正,查看以下打印
2016-07-25 15:51:15.861 0725Block[2962:135583] **-[ViewController viewDidLoad]:[Line:24]*****
2016-07-25 15:51:15.929 0725Block[2962:135583] **-[ViewController viewWillAppear:]:[Line:56]*****
2016-07-25 15:51:15.935 0725Block[2962:135583] **-[ViewController viewDidAppear:]:[Line:62]*****
目的:了解一下view的创建过程
2.关于Quartz的绘图
以前总是没有很好的理解图形上下文栈,今天又去了解一下,目前算基本明了。
上下文状态栈为内存中的一块区域,它用来保存前上下文当的状态.
我们获取的图层上下文当中其实两块区域,一个是存放添加的路径,一个是用来保存用户设置的状态,
这些状态包括线条的颜色,线宽等.
原来有两块区域呀,利用这点可以很好的解决一个问题。
问题:如何在同一个图形上下文栈中绘制不同属性的图形?
可以参考下面这段代码,完成绘制不同的图形
-(void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(0, 0)];
[path addLineToPoint:CGPointMake(rect.size.width,rect.size.height)];
[[UIColor blueColor] set];
CGContextSetLineWidth(ctx, 10);
// CGContextSaveGState(ctx);
CGContextAddPath(ctx, path.CGPath);
CGContextStrokePath(ctx);
// CGContextSaveGState(ctx);
path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(0, rect.size.height)];
[path addLineToPoint:CGPointMake(rect.size.width, 0)];
CGContextSetLineWidth(ctx,2);
[[UIColor yellowColor] set];
// CGContextRestoreGState(ctx);
CGContextAddPath(ctx, path.CGPath);
//将上下文添加到上下文
CGContextStrokePath(ctx);
}
1.把上下文状态保存到上下文状态栈
CGContextSaveGState(ctx)
2.上下文状态栈中取出上下文状态
CGContextRestoreGState(ctx)
其他的一些绘图的内容还是比较简单的,也没什么可以介绍的。
本文完