指で UIBezierPath を描画する UIView があります。ビューを再ズームすると (パスが描画された後など)、再描画関数がトリガーされ、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
、まったく実装しないと、メモリ警告が削除されることです。empty を実装すると、drawRect
依然としてクラッシュが発生します。