在Core Graphic坐标中转换CGRect

时间:2016-02-10 16:59:59

标签: ios uiview core-graphics

有没有办法将带有CGRect系统坐标的UIView转换为核心图形坐标,其原点位于左下角?

1 个答案:

答案 0 :(得分:1)

<强>确定。您只需要从视图的高度中减去y原点和矩形的高度。

rect.origin.y = view.frame.size.height-(rect.origin.y+rect.size.height)

您可以使用CGAffineTransform来表示:

CGAffineTransformMakeTranslation(0, view.size.height-((rect.origin.y*2.0)+rect.size.height))

你减去原点两次,因为你现在使用相对值而不是绝对值。

但是,如果您只想翻转上下文以便在UIView坐标中工作,那么您需要:

CGFloat ctxHeight = CGContextGetClipBoundingBox(c).size.height;
CGContextScaleCTM(c, 1, -1);
CGContextTranslateCTM(c, 0, -ctxHeight);