でタッチ ポイントを検出するにはどうすればよいUIScrollView
ですか? touches デリゲート メソッドが機能していません。
user559005
質問する
51182 次
4 に答える
181
タップ ジェスチャ レコグナイザーをセットアップします。
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGestureCaptured:)];
[scrollView addGestureRecognizer:singleTap];
そして、あなたは次のようになります:
- (void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture
{
CGPoint touchPoint=[gesture locationInView:scrollView];
}
于 2011-03-07T06:22:28.993 に答える
6
独自の UIScrollview サブクラスを作成してから、以下を実装できます。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"DEBUG: Touches began" );
UITouch *touch = [[event allTouches] anyObject];
[super touchesBegan:touches withEvent:event];
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"DEBUG: Touches cancelled");
// Will be called if something happens - like the phone rings
UITouch *touch = [[event allTouches] anyObject];
[super touchesCancelled:touches withEvent:event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"DEBUG: Touches moved" );
UITouch *touch = [[event allTouches] anyObject];
[super touchesMoved:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"DEBUG: Touches ending" );
//Get all the touches.
NSSet *allTouches = [event allTouches];
//Number of touches on the screen
switch ([allTouches count])
{
case 1:
{
//Get the first touch.
UITouch *touch = [[allTouches allObjects] objectAtIndex:0];
switch([touch tapCount])
{
case 1://Single tap
break;
case 2://Double tap.
break;
}
}
break;
}
[super touchesEnded:touches withEvent:event];
}
于 2012-05-15T10:33:04.020 に答える
1
スクロールビュー内のポイントについて話している場合は、デリゲートメソッドを使用できます。
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
メソッド内で、プロパティを読み取ります。
@property(nonatomic) CGPoint contentOffset
scrollViewから調整を取得します。
于 2011-03-07T06:12:39.087 に答える