1

わかりました、これが私のビューの階層です。

               Main View

     |---------------|---------------|

    UIView         UIView          UIView

      |             |                |

    UIButtons     UIButtons      UIButtons

上の図が示すように、タグ111,222,333の3つのサブビューがあります。

また、各サブビューには25個のボタンが含まれています。一度に1つのビューが表示されるため、タグプロパティによって他の2つのビューを非表示にします。

アプリの説明:ボタンに画像があり、ボタンをクリックするとそれらの画像が表示されるアプリ。ユーザーは一度に1つのボタンしかクリックできません。2回目のクリックで、ボタンの2つの画像が同じでない場合はボタンの画像を比較し、ボタンの画像は非表示になります。同じ場合は非表示になりません。 。

シミュレーターではすべてうまくいっていますが、デバイスでは、[2つ]ボタンを同時にクリックすると、両方が同時に開きます。(btnClickCountは2ですが)

ボタンを一度に1つだけ開くようにしたい。

私が試したこと:

  1. NOをmultiTouchに設定しました。
  2. Touches Beganを使おうとしましたが、UIViewではなくUIButtonnをタップしても意味がありませんでした。
  3. 私は試した

            self.view.userInteractionEnabled = NO;
    
            [self performSelector:@selector(EnableUserInteraction) withObject:nil afterDelay:0.5];
    

最初のボタンクリックでは、タッチが同時に発生している場合は何も起こりませんが、シングルタップでは機能します。

これで何をすべきかわからない!!!!!

助けてください、よろしくお願いします.........。

4

1 に答える 1

1

UIButton にはブール値のプロパティ「有効」があるため、ボタンのクリックを取得すると、他のすべてのボタンを次のように設定できます。

buttonName.enabled = NO;

次に、それらを再びアクティブにしたい場合は、設定します

buttonName.enabled = YES;

ボタンがどのように宣言されているかはわかりませんが、それらが異なる名前の IBOutlets である場合は、すべての名前を配列に入れ、アクティブなものを削除し、残りを列挙することで簡単にできます。

于 2011-09-30T12:29:01.553 に答える