http://donbe.blog.163.com/blog/static/138048021201061054243442/讲的很清楚,
需要注意的是CGAffineTransformIdentity这个,改过transform属性后调用这个函数可以复原,这样在做完复杂变形过后我们毋需进行复杂的反向还原。
此外在绘图时进行上下文形变的时候,还需要注意保存现场和现场的还原,例如:
-(void)drawRect:(CGRect)rect{ CGContextRef context=UIGraphicsGetCurrentContext(); //保存初始状态 CGContextSaveGState(context); CGContextTranslateCTM(...); CGContextScaleCTM(...); ... .... //恢复到初始状态 CGContextRestoreGState(context); }
否则在处理多个图形形变的时候很容易弄不清楚到底是基于怎样的坐标系进行绘图,容易找不到原点。