5

タッチの x 座標と y 座標を取得することは可能ですか? もしそうなら、座標がコンソールに記録されるだけの非常に簡単な例を提供してください。

4

3 に答える 3

14

touchesBegan イベントの使用

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint touchPoint = [touch locationInView:self.view];
    NSLog(@"Touch x : %f y : %f", touchPoint.x, touchPoint.y);
}

このイベントは、タッチが開始されるとトリガーされます。

ジェスチャーの使用

UITapGestureRecognizer をviewDidLoad:メソッドに登録します

- (void)viewDidLoad {
    [super viewDidLoad];
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureRecognizer:)];
    [self.view setUserInteractionEnabled:YES];
    [self.view addGestureRecognizer:tapGesture];
}

tapGestureRecognizer 関数の設定

// Tap GestureRecognizer function
- (void)tapGestureRecognizer:(UIGestureRecognizer *)recognizer {
    CGPoint tappedPoint = [recognizer locationInView:self.view];
    CGFloat xCoordinate = tappedPoint.x;
    CGFloat yCoordinate = tappedPoint.y;

    NSLog(@"Touch Using UITapGestureRecognizer x : %f y : %f", xCoordinate, yCoordinate);
}

サンプルプロジェクト

于 2013-07-18T04:05:31.437 に答える
0

これは非常に基本的な例です (View Controller 内に配置します)。

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

これは、タッチが移動するたびにトリガーされます。touchesBegan:withEvent:また、タッチの開始時にtouchesEnded:withEvent:トリガーするものと、タッチが終了したとき (つまり、指が離されたとき) にトリガーするものを使用することもできます。

を使用してこれを行うこともできますUIGestureRecognizer。これは多くの場合、より実用的です。

于 2013-07-18T04:02:48.200 に答える