我正在使用
其中penLayer是UIView
UIGraphicsBeginImageContext(penLayer.frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
//My Drawing Code
penLayer.image = UIGraphicsGetImageFromCurrentImageContext();
[penLayer setNeedsDisplay];
这很棒,但每次我调用drawRect时都会消除之前的情况 目前我不得不将所有绘图数据保存到字典
是否有任何方法阻止它在每次调用drawRect时清除,并且可能有一个在需要时调用clear的UIButton?
由于
答案 0 :(得分:0)
有一个BOOL property on UIView called clearsContextBeforeDrawing
。我假设你还没用过它。从文档中的讨论:
设置为
YES
时,在调用drawRect:
方法之前,绘图缓冲区会自动清除为透明黑色。此行为可确保在重绘视图的内容时不会留下任何可视工件。如果视图的opaque
属性也设置为YES
,则视图的backgroundColor
属性不得为nil,否则可能会出现绘图错误。此属性的默认值为YES
。如果将此属性的值设置为
NO
,则您有责任确保在drawRect:
方法中正确绘制视图的内容。如果您的绘图代码已经过大幅优化,那么将此属性设置为NO可以提高性能,尤其是在滚动时只需要重绘部分视图时。