3

使った

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[self.view addGestureRecognizer:singleTap];
- (void)handleSingleTap:(UIGestureRecognizer *)gestureRecognizer {
    UIView* view = gestureRecognizer.view;
    CGPoint loc = [gestureRecognizer locationInView:view];
}

CGPoint loc = [gestureRecognizer locationInView:view]; しかし、これにより、 Why???でエラーが発生しました。

4

2 に答える 2

1

コードにエラーは表示されませんが、エラーは、渡されたgestureRecognizerのインスタンスがUITapGestureRecognizerではないことを示しています。失敗した行にブレークポイントを設定し、タイプ情報gestureRecognizerを取得します。

余談ですが、iPhoneのSDK4.0以降を使用していることを確認してください。ジェスチャレコグナイザーは、iPadの場合は3.2、iPhoneの場合は4.0で提供されました。)適切なSDKを使用していなかった場合、以前にエラーが発生したと思うので、大丈夫だと思います。

于 2011-03-05T19:14:22.627 に答える
0

使用してみてください:

CGPoint loc = [gestureRecognizer locationInView:self.view];

または、代わりに UIView *view.. の名前を次のように変更します。

UIView* gesturevView = gestureRecognizer.view; 
CGPoint loc = [gestureRecognizer locationInView:gesturevView];
于 2010-09-27T11:37:54.163 に答える