我有一个 UIView,我用手指在其上绘制 UIBezierPath。当我重新缩放视图(例如在绘制路径之后)时,会触发重绘函数,该函数会重新缩放 BezierPath:
- (void)redrawPathsWithScale:(float)scale
{
[_path applyTransform:CGAffineTransformMakeScale(scale, scale)];
[self setNeedsDisplay];
}
setNeedsDisplay
导致drawRect
被调用。现在,每次我放大到 x6 附近的某个绝对比例时,我都会立即收到内存警告,并且应用程序崩溃。
我的drawRect
方法如下所示:
- (void)drawRect:(CGRect)rect
{
[_path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];
}
奇怪的是:根本不实施drawRect
会消除内存警告。实现一个空drawRect
仍然会导致崩溃!