0

私はデュアルアプリを持っていて、touchesBeganのコードブロックをiPhoneコードからiPadにコピーしました。私は何も変更しませんでした。このメソッドでは、最初のタッチでxとyが常にゼロになります。

コードブロック:

-(void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event {

  int iCardId;

  NSSet *allTouches = [event allTouches];

  // we are dealing with one finger get first touch

  // get first touch
  UITouch *touch=[[allTouches allObjects] objectAtIndex:0];

  // get the x and y
  CGPoint pt    = [touch locationInView: self.view];
  float x=pt.x; // this is always a zero
  float y=pt.y; // this is always a zero
  .........
  .........
  .........
}
4

1 に答える 1

0

を取得する正しい方法UITouchは、を使用すること[touches anyObject]です。それを試して、まだ取得できるかどうかを確認してください(0,0)

編集/更新

新しいシングルビューアプリケーションをセットアップし、次のコードをUIViewController:に配置しました。

-(void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event {
    NSSet *allTouches = [event allTouches];
    // we are dealing with one finger get first touch
    // get first touch
    UITouch *touch=[[allTouches allObjects] objectAtIndex:0];
    // get the x and y
    CGPoint pt = [touch locationInView:[self view]];
    NSLog(@"(%f,%f)", pt.x, pt.y);
}

適切にコーディネートしてくれているようです。コードはどこに置きましたか?

于 2012-05-07T23:36:43.397 に答える