2

何かを説明しようとしているので、テスト用のプロジェクトを作成しました。シングルビュー アプリケーションを作成し、縦向きのみを設定し (プロジェクトの概要で)、ステータス バーを非表示にしました (ViewController.xib で)。

ViewController.mで、タッチポイントを検出するための小さな方法を1つ書きました。

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch* touch = [touches anyObject];
    CGPoint point = [touch locationInView:[self view]];
    NSLog(@"%@", NSStringFromCGPoint(point));
}

理論的には、幅 320、高さ 480 のディスプレイが必要です。

したがって、幅をスライドさせ始めると、コマンドラインに 0 ~ 320 の範囲の値が表示されます。ここでは問題はありません。実際には、2,5 ~ 317 の範囲の値があります。

そのため、高さでスライドを開始すると、コマンド ラインに 0 ~ 480 の範囲の値が表示されます。しかし、ここで私は問題を抱えています。実際には、この範囲は -5.5...469 です。

なぜそうなのか理解できませんか?この範囲は非常に奇妙です。

4

1 に答える 1

0

locationInViewメソッドにビューを渡す必要がありますrootViewController。この方法で表現される座標は、通過するビューを基準にしています。

于 2012-10-23T21:48:40.320 に答える