0

このアプリと、入力した値をリセットするためのリセットボタンがあります。有効な値を入力しない限り、ボタンを灰色にしようとしています。

値が有効な場合、それは有効になり、タッチ可能になるはずです...

これどうやってするの?

このコードを使用していますが、機能していません...

//Reset values
- (IBAction)resetPressed:(UIButton *)sender {
    if (didPan==1) {
        resetPressed.enabled = YES;
    } else {
        resetPressed.enabled = NO;
    }
    self.prozent=0;
    didPan=NO;

    //remove drawn intersection line
    [intersectionLine removeFromSuperview];
    NSLog(@"resetPressed");
}
4

5 に答える 5

2

基準に一致する場合にボタンを有効にするには、setEnabled:YESを使用します。

例えば

UIButton *button = (UIButton *)sender;
[button setEnabled:YES];

これを行うためのさらに良い方法は、次のようにドット表記バージョンを使用することです。

button.enabled = YES;
于 2013-02-28T14:16:23.657 に答える
1

あなたの状態では if (didPan==1) {、必要な結果が得られますが、使用する方が良いです if(didPan)

次にresetPresed、ボタンや送信者ではなくアクション名です。そのため、代わりに送信者を使用する必要があります。resetPressed

ボタンのステータスを設定するために使用します[sender setEnabled:YES];//OR sender.enabled=YES;

あなたのコードは次のようになります

- (IBAction)resetPressed:(UIButton *)sender {

 if (didPan) {
        [sender setEnabled:YES];  //OR sender.enabled=YES;
    } else {
       [sender setEnabled:NO];  // OR sender.enabled=NO;
    }
}
于 2013-02-28T14:19:07.850 に答える
0

***私は長い間検索した後、問題を解決しました。

ResetButtonには次のようなプロパティが必要であることがわかりました

@property(strong、nonatomic)IBOutlet UIButton * resetButton;

次に、ボタンを強調表示し、コントロールから有効にするチェックを外しました(以前に試しましたが、機能しませんでした)

button.enabled = YESを使用し、通常の場合は[resetButton setAlpha:1]を使用し、アクティブ化されていない場合は[resetButton setAlpha:0.5]を使用して色を変更しました

みんな助けてくれてありがとう!*

于 2013-03-20T09:43:48.460 に答える
0

UITextField に値を入力する場合、テキスト フィールドのデリゲートを設定しtextFieldDidEndEditing:、デリゲート オブジェクトのメソッド内で有効化/無効化するコードを記述できます。すなわち; theButton.enabled = YES/NO あなたのコードから、そのボタン自体のアクション内でボタンを無効にするためのコードを書いているように見えますが、ボタンが無効になっていると機能しません。

于 2013-02-28T14:36:16.897 に答える
-1

たとえば UITextField に値を入力する場合は、テキストフィールドのデリゲートを使用して、値が正しいかどうかを判断します。

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{

   if ([textField.text isValid]) { // check if text in textfield is valid

       button.enabled = YES;
   } else  {
       button.enabled = NO;
   }

   return YES;
}
于 2013-02-28T14:35:54.503 に答える