0

画像があり、それを取得したいので、画像のセクションをクリックすると、そのセクションのみが強調表示されます。現在、これをテストするために、アプリケーションをセットアップし、画像ビューを背面に配置しました。画像を作成し、その上に 1、2、3、および 4 を書き込みました。次に、UIView を使用して、画像に水平線と垂直線を描画しました

オンタップ ジェスチャ リスナーを設定しました。これにより、ヒットしたセクションが出力されます。以下のコード

- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer
{
    // Get the location of the touch
    CGPoint touchPoint = [recognizer locationOfTouch:0 inView:[self view]];

    if(touchPoint.x > 10 && touchPoint.x < 160)
    {

        if(touchPoint.y > 30 && touchPoint.y < 220)
        {
            NSLog(@"Button 1");


        }else if(touchPoint.y > 220 && touchPoint.y < 430){
            NSLog(@"Button 3");
        }

    }else if(touchPoint.x > 160 && touchPoint.x < 310)

    {
        if(touchPoint.y > 220 && touchPoint.y < 430)
        {
           NSLog(@"Button 4");
        }else if(touchPoint.y > 30 && touchPoint.y < 220){
            NSLog(@"Button 2");
        }

    }

   //For debugging
   // NSLog(@"x = %f y = %f", touchPoint.x, touchPoint.y);
}

ここで、特定のセクションをクリックすると、画像のその部分だけが強調表示されるようにしたいと考えています。これは可能ですか?現在、私が使用している回避策は、通常の状態では非表示になっている 4 つのボタンをグリッドの上に追加し、このような強調表示された状態のイメージを与えることです。

[button setBackgroundImage:[UIImage imageNamed:@"highlightImage.png"] forState:UIControlStateHighlighted];

アルファを 0.5 またはその前後に設定すると、そのセクションが強調表示されているように見えます。これが唯一の方法である場合は、そのように答えてください。私はそれを受け入れますが、利用可能な場合はより具体的な解決策を希望します!! 前もって感謝します

作成イメージ例 ここに画像の説明を入力

4

2 に答える 2

1

正しいアプローチのように見えます。

おそらく、コードでハードコードされた数値をあまり使用せず、この機能をより一般的なレベルで実装する必要があります (たとえば、frame画像ビューまたはボタンのプロパティを使用します)。

于 2012-08-09T08:15:46.500 に答える
1

階層を上って、代わりに UIControl を使用することで、この動作を無料で実現できると思います。それをサブクラス化し、強調表示の動作を変更します。

于 2012-08-09T08:15:56.823 に答える