4

こんにちは開発者 (これは Stack-Overflow での私の最初の投稿です。コメントで私が間違っていたことを教えてください :)。

このコードは、ユーザーがピンチしているかどうかを検出します。

UIPinchGestureRecognizer *twoFingerPinch = 
  [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingerPinch:)] autorelease];
[[self view] addGestureRecognizer:twoFingerPinch];

ボイドアクション:

- (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer 
{
  NSLog(@"Pinch scale: %f", recognizer.scale);
}

問題は、ユーザーが 20 秒以内にピンチしていないかどうかを検出したいので、@「ピンチしてさらに画像を表示する」ことをユーザーに警告できることです。画像のサムネイルを使用しています。ユーザーがピンチすると、より多くの画像が表示されます。ご協力いただきありがとうございます。素晴らしい休日をお過ごしください。

4

1 に答える 1

3

twoFingerPinchユーザーがピンチしたときにのみメソッドで無効になる20秒でタイマーを開始します。これをチェックし始める必要があるときはいつでも、このタイマーを開始してください。タイマーアクションメソッドでは、このアラートを表示するコードを配置できます。

.hファイルでタイマーを宣言します。

@property(nonatomic, strong) NSTimer *timer;

これviewDidLoadをチェックするためにタイマーを開始する方法または方法のいずれかで、

self.timer = [NSTimer scheduledTimerWithTimeInterval:20.0f target:self selector:@selector(showAlert) userInfo:nil repeats:YES];

showAlert方法では、

- (void)showAlert {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Pinch to show more Images" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
    [alert show];
}

twoFingerPinch方法では、

- (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer 
{
  NSLog(@"Pinch scale: %f", recognizer.scale);
  [self.timer invalidate];

  //if the timer needs to be restarted add,
  self.timer = [NSTimer scheduledTimerWithTimeInterval:20.0f target:self selector:@selector(showAlert) userInfo:nil repeats:YES];
}
于 2012-12-25T02:55:28.003 に答える