可能重複:
UIScrollview getting touch eventsiPhone - 的UIScrollView ...檢測觸摸的座標
是否有可能發現其中一個UIScrollView手指觸摸?
我的意思是,假設用戶以這種方式使用他的手指:輕敲和滾動,舉起手指,再次輕敲和滾動等等。是否有可能知道與自我相關的輕敲發生在哪裏。查看滾輪在?卷軸佔據了整個self.view。
謝謝。
可能重複:
UIScrollview getting touch eventsiPhone - 的UIScrollView ...檢測觸摸的座標
是否有可能發現其中一個UIScrollView手指觸摸?
我的意思是,假設用戶以這種方式使用他的手指:輕敲和滾動,舉起手指,再次輕敲和滾動等等。是否有可能知道與自我相關的輕敲發生在哪裏。查看滾輪在?卷軸佔據了整個self.view。
謝謝。
你可以用手勢識別去做。對於檢測單抽頭位置使用UITapGestureRecognizer
UITapGestureRecognizer *tapRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)] autorelease];
[myScrollView addGestureRecognizer:tapRecognizer];
- (void)tapAction:(UITapGestureRecognizer*)sender{
CGPoint tapPoint = [sender locationInView:myScrollView];
CGPoint tapPointInView = [myScrollView convertPoint:tapPoint toView:self.view];
}
要轉換tapPoint
到self.view您可以在UIView類使用convertPoint:toView:
方法
看一看touchesBegan:withEvent:你將得到一個NSSet UITouch's,並且UITouch包含一個locationInView:方法,它應該返回觸摸的CGPoint。
在這種情況下,您需要子類UIScrollView – beryllium
您可能可以繼承它並查看touchesBegan。
它並不那麼容易。 TouchesBegan只是檢測到一個觸摸,如果滾動視圖仍然是已經移動,我觸摸它,touchesBegan不會檢測到任何東西。 – SpaceDog
你可以找到在視圖中的位置和滾動OFSET添加到它。現在,您的下一個問題是-(void)touchesBegan:touches:event
將不會被調用,因爲事件將發送到您的滾動視圖。這可以通過子類化你的UIScrollView來解決,並讓scrollview把觸摸事件發送給下一個響應者(你的視圖)。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// Position of touch in view
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchPoint = [touch locationInView:self.view];
// Scroll view offset
CGPoint offset = scrollView.contentOffset;
// Result
CGPoint scrollViewPoint = CGPointMake(touchPoint.x, touchPoint.y + offset.y);
NSLog(@"Touch position in scroll view: %f %f", scrollViewPoint.x, scrollViewPoint.y);
}
nope。如果我點擊並不滾動,touchesBegan就會觸發。如果我喜歡我說的話,點擊,滾動,舉起手指,點擊,滾動,舉起手指等,就不會檢測到水龍頭。如果滾動條在大滑動之後也滾動,則無法檢測到水龍頭。滾輪必須靜止不動,而且必須製作一個乾式水龍頭才能使用。這看起來並不容易。 – SpaceDog
nope。如果我點擊並不滾動tapAction,就會觸發它。如果我喜歡我說的話,點擊,滾動,舉起手指,點擊,滾動,舉起手指等,就不會檢測到水龍頭。如果滾動條在大滑動之後也滾動,則無法檢測到水龍頭。滾輪必須靜止不動,而且必須製作一個乾式水龍頭才能使用。 – SpaceDog
還有很多其他手勢識別器 - UIPanGestureRecognizer,UIPinchGestureRecognizer,UISwipeGestureRecognizer,UIRotationGestureRecognizer。此外,您可以創建自定義識別器來檢測非常複雜的觸摸。我用簡單的手勢給了更受歡迎的例子。 – beryllium
@RubberDuck你有沒有想過這個?我在同一條船上......我正在研究UICollectionView,我想要檢測手指是否在單元格視圖上 –