10

オーバーライドdrawRectすると、そこの座標は左上に0,0を使用していることがわかりました。

しかし、AppleUIViewプログラミングガイドには次のように書かれています。

一部のiOSテクノロジーは、原点と方向がUIKitで使用されるものとは異なるデフォルトの座標系を定義します。たとえば、CoreGraphicsとOpenGLESは、原点がビューまたはウィンドウの左下隅にあり、y軸が画面に対して上を向いている座標系を使用します。

よくわかりません; ここでコアグラフィックスを参照するとき、彼らはクォーツとは異なる何かについて話しているのですか?

4

3 に答える 3

9

このドキュメントの「コアグラフィックス」は「クォーツ」を意味します。それは単純化しすぎです。

自分で作成するCGContextと、その座標系の原点は左下になります。UIKitがCGContextビューに描画するためのを作成するとき、を呼び出す前に座標系を反転させると便利-drawRect:です。

于 2012-05-02T06:42:02.977 に答える
3

iOSのCoreGraphicsとQuartzは、座標に関する限り、同じものです。iOSテクノロジーガイドには次のように書かれています。

コアグラフィックス(Quartzとも呼ばれます)..

Core Graphicsフレームワーク(CoreGraphics.framework)には、Quartz2D描画APIのインターフェイスが含まれています。Quartzは、MacOSXで使用されているものと同じ高度なベクターベースの描画エンジンです。

違いは、技術的には、Quartzがテクノロジーまたはメカニズムであり、「CoreGraphics」がフレームワークの名前であるということです。(もちろん、Mac OSには、単なる傘である「Quartz」フレームワークがあります。)

于 2012-05-02T06:44:10.213 に答える
3

このスレッドを見つける他の人の利益のために:

ここに座標系の完全な説明があります:Cocoaの座標系

それらが異なることは必ずしも役に立ちません。アプリのさまざまなレベルのビューで座標系を変換する方法があります。たとえば、これは、ズームされた画像の表示画面で(20,20)にある点の座標を検索します。結果は、ズームされた画像の原点に相対的であり、現在は空間からかなり離れている可能性があります。

croppingFrame.origin = [self convertPoint:CGPointMake(20.0, 20.0) fromCoordinateSpace:(self.window.screen.fixedCoordinateSpace)];
于 2015-04-15T15:25:45.133 に答える