1

私はiPhone用の最初のゲームを開発していて、この問題を抱えています。座標系がかなりずれているようです。おそらく私は何か間違ったことをしています。

UIViewControllerがあり、RootViewControllerとして設定されています。その後、viewControllerはUIViewを呼び出します。

アプリデリゲート;

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
MyViewController *myViewController = [[MyViewController alloc] init];
[[self window] setRootViewController:myViewController];

ViewController;

CGRect frame = [[UIScreen mainScreen] bounds];
MyView *v = [[MyView alloc] initWithFrame:frame];
[self setView:v];

意見;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
.
.
.
[myCALayer setBounds:CGRectMake(0.0, 0.0, width, height)];
[myCALayer setPosition:CGPointMake(x, y)];

したがって、0.0は左上隅であると想定されますが、私の開発環境では、表示されている画面の外側、まだ左上のどこかにありますが、0.0で画像を描画すると、右下のごく一部しか表示されません。 。

なぜこれが起こるのか考えていますか?

4

1 に答える 1

0

位置

スーパーレイヤーの座標系でのレシーバーの位置を指定します。アニメート可能。

@property CGPoint position

討論

位置はアンカーポイントに相対的です。このプロパティの値はポイントで指定されます。デフォルトは (0.0, 0.0) です。

boundsanchorPoint、およびpositionプロパティ間の関係の詳細については、コア アニメーション プログラミング ガイドの「レイヤージオメトリと変換」</a>を参照してください。

デフォルトでは、anchorPoint は (0.5,0.5) に設定されています。これはレイヤーの中心であるため、位置を (0,0) に設定すると、レイヤーの中心は (0,0) になります。右下隅のみが表示されます。 、アンカーポイントを(0,0)に設定してから、位置を(0,0)に設定する必要があります。

于 2012-09-01T17:57:10.860 に答える