我以这种方式加载图像并创建镜像:
originalImg = [UIImage imageNamed:@"ms06.png"];
mirrorImg = [UIImage imageWithCGImage:[originalImg CGImage] scale:1.0 orientation:UIImageOrientationUpMirrored];
然后我将上面的 UIImage 对象设置为 UIView 的子类,并覆盖 drawRect:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGAffineTransform t0 = CGContextGetCTM(context);
CGContextConcatCTM(context, t0);
CGContextDrawImage(context, self.bounds, [image CGImage]);
CGContextRestoreGState(context);
}
无论我绘制哪张图片,显示的图像始终是原始图像,设置为 UIView 子类时永远不会显示镜像图像。我确定镜像图像已正确设置为 UIView,因为调试信息显示方向成员变量等于 4,这意味着“UIImageOrientationUpMirrored”,而原始图像等于 0。有没有人可以帮我解决这个问题, 谢谢。
我还尝试使用 setImage: 在 UIImageView 中显示镜像图像,并且它可以正常工作。顺便我发现在调用UIImageView的setImage时drawRect中的断点从来没有命中过,我们如何定义在加载图像到UIImageView时的绘制行为(例如在图像上方画一条线)?