待ってください!!!:
この質問は以前に何度も尋ねられ、回答されていると思われるかもしれません。しかし、この質問がユニークであることは保証できます。
質問:
iOS アプリで、以下の画像に示すように 2 つのボタンがあり、トグル ロジックのように動作する 2 つのアクションがあると想像してください。
そして、そのロジックは次のようになります。
- (IBAction)testBtnClicked:(id)sender {
if ([self.testBtn isEnabled]) {
[self.testBtn setEnabled:NO];
[self.setInteractionBtn setUserInteractionEnabled:YES];
} else {
[self.testBtn setEnabled:YES];
[self.setInteractionBtn setUserInteractionEnabled:NO];
}
}
- (IBAction)setInteractionBtnClicked:(id)sender {
if ([self.setInteractionBtn isEnabled]) {
[self.setInteractionBtn setUserInteractionEnabled:NO];
[self.testBtn setEnabled:YES];
} else {
[self.setInteractionBtn setUserInteractionEnabled:YES];
[self.testBtn setEnabled:NO];
}
}
setEnabled
したがって、メソッドとメソッドの間に大きな違いはありませんsetUserInteractionEnabled
。それらは、ユーザーが使用できないようにする単一のメソッドのように動作します。しかし、それが同じである場合、どのように検出することができますisEnabled
true
か?false
setUserInteractionEnabled
False
以下は、この質問が SO の別の Q&A スレッドと重複する可能性がない理由です。
- ランクの高いコードによって私の質問が重複の可能性があるとマークされたとしても、その Q&A では正しい理解が得られませんでした。
- @danhが言ったように、
少なくとも 1 つの理由は、アニメーション中、UIView でのユーザー操作が無効になっていることです。コントロールがアニメーション化されているときに、コントロールがグレー表示されるのは正しくありません。したがって、少なくともアニメーション中は、2 つのプロパティは異なる意味を持ちます。
これら2つの方法には2つの理由があることを確認する本当の答えまたは理由を教えてくれました。誰もがsetUserInteractionEnabled
UIの状態を変更しないと言うことができますが、少なくとも@danhの回答でのみ、UIアニメーション中に暗黙的に使用される可能性があると最初に述べていました。