1
有沒有辦法確保任何包含超過一定移動量的敲擊被丟棄?就這一點而言,作爲水龍頭的重要性可能涉及手指的大量滑動。我想通過使用touchesBegan :, touchesMoved:等來處理不同的「點按和移動」。iOS設置移動手勢識別器的移動容差
有沒有辦法確保任何包含超過一定移動量的敲擊被丟棄?就這一點而言,作爲水龍頭的重要性可能涉及手指的大量滑動。我想通過使用touchesBegan :, touchesMoved:等來處理不同的「點按和移動」。iOS設置移動手勢識別器的移動容差
可能不是您正在尋找的答案。但我已經解決了這個問題,而是通過常規觸摸順序自己來做。對於這個工作,你也希望有self.multipleTouchEnabled = NO
@interface myView(){
CGPoint _touchStartPoint;
}
@end
@implementation myView
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
_touchStartPoint = [[touches anyObject] locationInView:self];
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
[self checkDistance: [[touches anyObject] locationInView:self]];
}
-(void)checkDistance:(CGPoint)p{
static CGFloat dX;
dX = p.x - _touchStartPoint.x;
static CGFloat dY;
dY = p.y - _touchStartPoint.y;
static CGFloat dist;
dist = sqrt(dX*dX + dY*dY);
/* movement of less than 10 pixels */
if(dist < 10){
[self tap];
}
}
-(void)tap{
/* do something with your tap*/
}
@end
更好的做法是將此功能構建到自定義手勢識別器中。請參閱WWDC 2012:構建高級手勢識別器。 – olynoise 2014-05-23 20:02:07
'UITapGestureRecognizer'有這個內置的,什麼是失敗? – Fogmeister 2014-05-28 15:25:38
您是否在說'UITapGestureRecognizer'允許您設置公差作爲輕敲? – AbleArcher 2014-06-01 21:16:57
據我所知,它具有內置的容差。無論是新聞的長度還是距離的移動。離開我的頭頂我不記得它是什麼,但我可能會嘗試看看我能否解決問題。 – Fogmeister 2014-06-02 05:38:15