2012-03-05 9 views
2

UIButton[myButton setEnabled:NO];によって無効にされても、まだ動作するタッチリスナーを使用することは可能ですか?iOSが無効のボタンで内側に触れる

は、私が試してみました:

[self addTarget:self action:@selector(myButtonTUI:) forControlEvents:UIControlStateDisabled]; 

が、無駄に。

答えて

4

あなたの質問への答えは、あなたがこのような機能をシミュレートすることができませ

enabled 
A Boolean value that determines whether the receiver is enabled. 

@property(nonatomic, getter=isEnabled) BOOL enabled 
Discussion 
Specify YES to make the control enabled; otherwise, specify NO to make it disabled. 
The default value is YES. If the enabled state is NO, the control ignores touch 
events and subclasses may draw differently. 

ではありませんか?はい。

ボタンを無効にする代わりに、ボタンのアクションセレクタで機能が起動するかどうかを確認してください。画像を無効にするために画像を変更することさえできます。このようにボタンはまだタッチイベントを受信し、正しい条件が満たされていれば必要な機能を起動できます。

+0

これよりも優れた解決策があるはずです。別のジェスチャー認識機能をボタンに付けることはできませんか? – devios1

+0

記録のために、私はこれを、UIViewの中にボタンを置き、UIViewにジェスチャ認識子をつけることで実現しました。何らかの理由で、ボタンに直接接続するときに機能しませんでした。 – devios1

+0

あなたはこの道を進むアクセシビリティに問題があります。 – rshev

1

これは、同じサイズのUIViewUIButtonをラップし、親ビューにタップジェスチャー認識を取り付けることによって達成することができます。

UITapGestureRecognizer* gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myButtonHit)]; 
[self.myButtonView addGestureRecognizer:gesture]; 

取り付けるときに、動作するようには思えないいくつかの理由についてジェスチャー認識機能をUIButton自体に追加しました。これは最適なソリューションでした。

関連する問題