0

上下にスワイプするジェスチャ認識機能を使用して、ユーザーが iOS アプリの明るさを制御できるようにしたいと考えています。ジェスチャーで明るさを制御することさえできますか? スライダーと UIScreen の輝度プロパティを使用する前にそれを行いました...

[UIScreen mainScreen].brightness = 0.5;

スライダー (iBooks アプリなど) を使用する場合と同じように明るさを制御できるようにしたいのですが、スライダーの代わりにジェスチャ認識機能を使用します。アイデアは、タッチが認識され、指が上下に移動している限り、ジェスチャによって輝度値が連続的に変化するというものです。パン ジェスチャを使用して方向を何らかの形で上または下に制限するか、スワイプ ジェスチャを使用する必要があるかどうかはわかりませんでした (ただし、明らかに 1 回のスワイプを検出し、値を継続的に更新するわけではありません)。

おそらく、画面上で指定された量だけ指を上に動かすと、明るさの値の 0.0 ~ 1.0 の範囲が増加します。どのようにアプローチすればよいのかわからないので、大声で考えているだけです。

何か案は?どうもありがとう。

編集:わかりましたので、別の同様の質問でこのコードを見つけました

- (void)pan:(UIPanGestureRecognizer *)recognizer
{
    if ((recognizer.state == UIGestureRecognizerStateChanged) ||
        (recognizer.state == UIGestureRecognizerStateEnded))
    {
        CGPoint velocity = [recognizer velocityInView:self.view];

        if (velocity.y >0)   // panning down
        {
            self.brightness = self.brightness -.02;
                 NSLog (@"Decreasing brigntness in pan");
        }
        else                // panning up
        {
            self.brightness = self.brightness +.02;
              NSLog (@"Increasing brigntness in pan");
        }
    }
}

上下にジェスチャーするたびに少なくとも NSLog を出力するようです。ジェスチャーを検出したかどうかを伝えるだけでなく、NSLog を使用して現在の明るさの値を調べる方法があるかどうかを知りたいと思います (私が愚かで、私が使用している NSLog がすでにそれを教えてくれている場合を除きますか?)。ありがとう、私はデバイス上で実行できないので、これは知っておくと本当に便利です. :-D

4

2 に答える 2

1

はい!パン ジェスチャが呼び出されたときに、a を使用してそれに応じて値UIPanGestureRecognizerを調整するだけです。アップルのドキュメントを確認してください。brightness

于 2013-01-19T01:22:14.963 に答える