У меня есть 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
по-прежнему вызывает сбой!