0

添付のスクリーンショットに赤い「+」/「矢印」のグリフがあります。Xcodeでこの「原点」ポイントを変更するのは簡単です。これをプログラムで行う方法ありますか、それとも完全にXcodeの抽象化ですか?

ここに画像の説明を入力してください

たとえば、プログラムでUILabelを作成し、右下の座標を計算して配置したいとします。Xcodeでは、赤い「+」が右下のグリッドポイントにあることを確認し、その「原点」を念頭に置いてX、Y、幅、高さのパラメーターを定義します。

4

2 に答える 2

11

自動レイアウトを使用していない場合は、ラベル (または任意のビュー) をコードの中心に配置することで配置できます。したがって、ラベルの右下隅の位置がわかっている場合は、ラベルの幅と高さの半分を差し引くだけで、ラベルの中心の位置を計算できます。

CGPoint lowerRight = somePoint;
CGRect frame = label.frame;
label.center = CGPointMake(lowerRight.x - frame.size.width / 2,
    lowerRight.y - frame.size.height / 2);

私はそれをすることをお勧めします。

ただし、必要に応じて、代わりに下位レベルに移動できます。すべてのビューにはコア アニメーション レイヤーがあり、ビューの画面上の外観を実際に管理します。レイヤーにはanchorPointプロパティがあり、デフォルトでは (0.5, 0.5) で、レイヤーの中心を表します。anchorPoint右下隅に (1, 1) を設定できます。

label.layer.anchorPoint = CGPointMake(1, 1);

現在、ラベルcenterは実際に右下隅の位置を制御しているため、直接設定できます。

label.center = somePoint; // actually sets the lower right corner

フレームワークをターゲットに追加しQuartzCore、インポート<QuartzCore/QuartzCore.h>してプロパティを変更する必要がありanchorPointます。

于 2012-11-03T05:31:31.127 に答える
0
myObject.origin = CGPointMake (0.0,0.0);
于 2012-11-03T05:07:18.247 に答える