ココア タッチの現在の座標は左上隅にあり、0,0 です。私が疑問に思っているのは、0,0が左下隅にあるように「反転」することが可能かどうかということですか?
cocos2d のように 0,0 ポイントが左下隅にあるような調整システムが必要です。ココアタッチでそれを実現することは可能ですか?
ココア タッチの現在の座標は左上隅にあり、0,0 です。私が疑問に思っているのは、0,0が左下隅にあるように「反転」することが可能かどうかということですか?
cocos2d のように 0,0 ポイントが左下隅にあるような調整システムが必要です。ココアタッチでそれを実現することは可能ですか?
「Cocoa」について質問されましたが、実際、Cocoa は長い間、フリップ ビューと非フリップ ビューの明確な違いを示してきました。Cocoa では、単にメソッドをオーバーライドする必要があります。(そして、Cocoa で「反転」とは、Cocoa Touch が行う方法を意味します。Cocoa のデフォルトの「非反転」は、左下の原点です。)
しかし、Cocoa をプログラミングしているわけではありません。Cocoa Touch をプログラミングしています。
したがって、おそらく UIKit から取得したため (UIKit を経由せずに作成した CGContext は反転されません)、反転されたコンテキストがあり、それを反転する必要があります。(または、反転していないコンテキストがあり、それを反転したい場合。)
いずれにせよ、解決策は同じです。
平行移動は原点を移動します。高さ全体を平行移動すると、原点が反対側のコーナーに移動します。
スケーリングは軸を変更します。y 軸を負の 1 でスケーリングすると反対方向に反転するため、上にあったものが下になり、その逆になります。
これが、コンテキストを左上の起点から左下に、またはその逆にフリップ (またはアンフリップ) する方法です。
動作しない、または試してはならないもの:
geometryFlipped
レイヤーに設定します。サブレイヤーに影響しますが、カスタム描画には影響しません。(もちろん、すべての「描画」がシェイプ レイヤーとテキスト レイヤーとプレーン レイヤーである場合は、このプロパティを設定するだけで、変換について心配する必要はありません。)contentsAreFlipped
CALayer サブクラスでのオーバーライド。ドキュメントには、そうしないように書かれています。transform
。ドキュメントによると、適用される座標空間transform
の原点はanchorPoint
コーナーではなく、中心 (または ) にあります。それは魅力的ですが、私は陽気さが続くことを期待しています.