2

私の目標は、上下のパン ジェスチャで iPhone の明るさを設定することです。パンの方向を判断する簡単な方法があれば、私にはわかりません。スワイプ ジェスチャ レコグナイザを追加してから、次のコードを追加しました。

- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer           shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer     *)otherGestureRecognizer
{
    return YES;
}

しかし、私の pan: メソッドは、パンの方向を特定できないようです。両方のジェスチャ レコグナイザーのデリゲートとして「self」を設定しました。次のコードは、さまざまな試みの最新のものです。(下にパンすると美しく機能します。下にパンする速度に応じて、画面がゆっくりまたは速く暗くなります。)

- (IBAction)downSwipe:(UISwipeGestureRecognizer *)recognizer // 1/16/13
{
    NSLog (@"downSwipe");
    if ((recognizer.state == UIGestureRecognizerStateChanged) ||
    (recognizer.state == UIGestureRecognizerStateEnded))
  {
    NSLog (@"downSwipe in downSwipe");
    self.brightness = self.brightness -.1;
    NSLog (@"Going Down");
  }
}

- (IBAction)upSwipe:(UISwipeGestureRecognizer *)recognizer  // 1/16/13
{
    NSLog (@"upSwipe");
    if ((recognizer.state == UIGestureRecognizerStateChanged) ||
    (recognizer.state == UIGestureRecognizerStateEnded))
  {
        NSLog (@"upSwipe in upSwipe");
        self.brightness = self.brightness +.1;
        NSLog (@"Going UP");
  }
}

- (void)pan:(UIPanGestureRecognizer *)recognizer // 1/12/13
{

if ((recognizer.state == UIGestureRecognizerStateChanged) ||
    (recognizer.state == UIGestureRecognizerStateEnded))
   {
    if (UISwipeGestureRecognizerDirectionDown)
    {
        NSLog (@"downSwipe in pan");
        self.brightness = self.brightness -.005;
        NSLog (@"Going DOWN in pan");
    }
     else if (UISwipeGestureRecognizerDirectionUp)
    {
        NSLog (@"upSwipe in pan");
        self.brightness = self.brightness +.005;
        NSLog (@"Going UP in pan");
    }
   } 
}      

以下の出力は、約 0.5 インチの連続した上向きのパンを表しています。(パン: 下向きのパンだと誤って認識します。)

2013-01-17 17:49:57.774 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:57.783 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:57.794 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:57.801 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:57.811 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:57.818 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:57.832 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:57.839 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:57.848 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:57.855 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:57.864 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:57.871 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:57.881 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:57.887 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:57.896 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:57.903 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:57.910 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:57.919 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:57.929 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:57.935 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:57.945 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:57.951 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:57.960 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:57.966 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:57.998 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:58.004 SeriousPanicButton[9426:707] Going DOWN in pan
2013-01-17 17:49:58.022 SeriousPanicButton[9426:707] downSwipe in pan
2013-01-17 17:49:58.030 SeriousPanicButton[9426:707] Going DOWN in pan

Obviously this if statement is not working:

if (UISwipeGestureRecognizerDirectionDown)

これを実際よりも難しくしていないことを願っています。パン ジェスチャの方向 (上または下) を何らかの形で判断できれば、はるかにクリーンで、スワイプ ジェスチャを気にする必要さえありません。

どんな助けでも大歓迎です。

4

1 に答える 1