iPhoneで指の長いホールドを追跡する方法は?
質問
iPhone画面のTouchのようなイベントを2秒間追跡するにはどうすればよいですか。 safariのように、Uiwebviewに追加された画像の画像を保存しますか?
解決
nstimerを作成します +scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
あなたの見解では -touchesBegan:withEvent:
メソッド、およびそれをキャンセルします(使用します -invalidate
) の -touchesEnded:withEvent:
. 。そのセレクターが指す方法が呼び出された場合、ユーザーは、タイマーの間隔を設定した期間、ビューに指を保持しました。例:
インターフェイス(.h):
@interface MyView : UIView
...
NSTimer *holdTimer;
@end
実装(.m):
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)evt
{
[holdTimer invalidate];
holdTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(touchWasHeld) userInfo:nil repeats:NO];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)evt
{
[holdTimer invalidate];
holdTimer = nil;
}
- (void)touchWasHeld
{
holdTimer = nil;
// do your "held" behavior here
}
所属していません StackOverflow