我正在尝试缩放和翻译屏幕上的图像。
这是我的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
对象。我用
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];
但它和其他方法一样慢。