4

iPhone画面を2秒間タッチするなどのイベントを追跡するにはどうすればよいですか。Safariのように、UIWebViewに追加された画像の画像を保存しますか?

4

1 に答える 1

10

+scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:ビューのメソッドでNSTimer を作成し、-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
}
于 2010-02-07T03:31:22.483 に答える