0

アプリで UITextField を非表示にしようとしています。私は最初にUIButtonでそれをやろうとしました..

したがって、私はこれを作りました:

-(IBAction)hide:(id)sender {

_textField.hidden = !_textField.hidden;

}

これはうまくいきましたが、編集後に自動的に実行しようとしているので、次のコードを書きました。

 -(void)textFieldDidEndEditing:(UITextField *)textField {

 textField.hidden = YES;

 }

.h に次のコードを入れます。

-(void)textFieldDidEndEditing:(UITextField *)textField;

これが機能しない理由を誰か教えてもらえますか?

アニメーションで隠すことはできますか?私はこれを試しましたが、うまくいきませんでした:

[UIView animateWithDuration:2.0 animations:^
{ code.. }
]

私を助けてくれてありがとう!

4

2 に答える 2

1

UITextField の隠しプロパティは BOOL であり、アニメーション化できません。テキスト フィールドのalphaプロパティを使用してみてください。浮動小数点値を受け入れます。完全に透明な場合は 0.0、完全に不透明な場合は 1.0 です。

したがって、UITextField のアルファをアニメーション化して非表示にすることができます。

[UIView animateWithDuration: 2.0 
                 animations:^{ 
      textField.alpha = 0.0;
 }];

ベリリウムが言ったように、 -textFieldDidEndEditing:メソッドが呼び出されるように、テキスト フィールドに実際にデリゲートが設定されているかどうかも確認する必要があります。

View Controller が次のように設定されていると仮定します。

@interface ViewController : UIViewController<UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UITextField *textField;
@end

次に、ストーリーボードの UITextField のデリゲートアウトレットを次のようにビュー コントローラーに接続する必要があります。

ここに画像の説明を入力

または、View Controller の-viewDidLoadメソッドでプログラムで実行できます。

- (void) viewDidLoad 
{
     self.textField.delegate = self;
}
于 2012-11-04T15:34:50.917 に答える
1

アニメーション化するには、textField のアルファ値を操作する必要があります。次に例を示します。

textField.alpha = 1;
[UIView animateWithDuration:2.0 animations:^{
    textField.alpha = 0;
}];
于 2012-11-04T15:27:44.717 に答える