Я пытаюсь увеличить и перевести изображение на экран.
вот мой DrawRect:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextSetShouldAntialias(context, NO);
CGContextScaleCTM (context, senderScale, senderScale);
[self.image drawAtPoint:CGPointMake(imgposx, imgposy)];
CGContextRestoreGState(context);
}
Когда senderScale
равно 1,0, перемещение изображения (imgposx/imgposy
) происходит очень плавно. Но если senderScale имеет какое-либо другое значение, производительность сильно снижается, и изображение заикается, когда я его перемещаю.
Изображение, которое я рисую, представляет собой UIImage
object. я создаю его с
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0);
и нарисуйте простой UIBezierPath(stroke)
:
self.image = UIGraphicsGetImageFromCurrentImageContext();
Я делаю что-то неправильно? Отключение сглаживания не сильно улучшило ситуацию.
Изменить: я пробовал это:
rectImage = CGRectMake(0, 0, self.frame.size.width * senderScale, self.frame.size.height * senderScale);
[image drawInRect:rectImage];
но это было так же медленно, как и другой метод.