2016-02-10 43 views
-1

有沒有辦法將CGRectUIView系統座標轉換爲核心圖形座標,原點位於左下角?在覈心中轉換CGRect圖形座標

+0

http://stackoverflow.com/questions/506622/cgcontextdrawimage-draws-image -upside-down-when-passed-uiimage-cgimage/511199?s = 1 | 0.0000#511199使用標準技術移動到視圖的高度並翻轉y尺度。 CGContextScaleCTM(ctx,1.0,-1.0); CGContextTranslateCTM(ctx,0,-imageRect.size.height); –

回答

1

當然。你只需要從視圖的高度減去矩形的原點和高度。

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); 
+0

你知道使用CGAffineTransform的方法嗎? – user2783443

+0

我已經更新了我的答案以包含此內容 – Hamish