指で 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依然としてクラッシュが発生します。