我有一个包含该代码的自定义视图:
- (void)drawRect:(CGRect)rect
{
UIImage* theImage = [UIImage imageNamed:@"blue_arrow"];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetLineWidth(context, 1.0);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGPoint posOnScreen = self.center;
CGContextDrawImage(context, CGRectMake(posOnScreen.x - theImage.size.width/2,
posOnScreen.y - theImage.size.height/2,
theImage.size.width,
theImage.size.height),
theImage .CGImage);
}
图像是一个箭头,指向顶部。
但是在绘制时,它是颠倒的,指向底部。
导致这个问题的原因是什么? 我怎么能纠正这一点,自然没有副作用?
答案 0 :(得分:3)
这是因为Core Graphics正在使用翻转坐标系。
您可以尝试使用isFlipped
属性翻转您要绘制的对象。
或者您可以尝试在绘图方法(Source)中使用此代码:
CGContextTranslateCTM(context, 0, image.size.height);
CGContextScaleCTM(context, 1.0, -1.0);