1

UITextFieldsetFrame: メソッドでアニメーション化した3 つの があります。アニメーション自体はうまく機能しますが、ユーザーが画面に触れると、アニメーションの前に問題が発生します。発生するのは、3 つの s がすべてUITextField消えることです。

注意すべきことの 1 つは、キャンセルを押してから、アニメーションを再インスタンス化するボタンを押すと、 が再表示UITextFieldされ、以前にユーザーが入力した文字列が残っていることです。だから、実際に消えているわけではなく……視覚的に消えているだけだと思います。

私が持っているコード:

- (IBAction)signupPressed:(UIButton *)sender
{
    self.isSigningUp = YES;
    [UIView animateWithDuration:0.3f
                          delay:0.0f
                        options:UIViewAnimationOptionCurveEaseOut
                     animations:^{
                         self.krtiqueButton.alpha = 0.0f;
                         self.krtiqueButton.enabled = NO;
                         self.facebookButton.alpha = 0.0f;
                         self.facebookButton.enabled = NO;
                     } completion:^(BOOL finished){
                         if (finished) {
                             [self animateSignUpCredentials];
                         }
                     }];
}
- (void)animateSignUpCredentials
{
    [UIView animateWithDuration:0.3f
                          delay:0.0f
                        options:UIViewAnimationOptionCurveEaseOut
                     animations:^{
                         self.fullnameTextField.frame = CGRectMake(20, 59, 280, 30);
                         self.emailTextField.frame = CGRectMake(20, 97, 280, 30);
                         self.passwordTextField.frame = CGRectMake(20, 135, 280, 30);
                         self.continueButton.alpha = 1.0f;
                     } completion:nil];
}

setFrame: が呼び出される方法を setFrame, から に変更して切り替えてみました[self.fullnameTextField sefFrame: ...]。そうでなければ、私は本当に何も考えられません(笑)。

誰かアイデアはありますか?

4

1 に答える 1

1

自動レイアウト (制約と呼ばれる算術規則に基づいてコントロールの配置を制御する iOS 6 の機能) を使用していますか? 自動レイアウトがオンになっているかどうかを確認するには、ストーリーボード/NIB を開き、option+ command-1を押して「ファイル インスペクター」に移動し (または、一番右のパネルの「ファイル インスペクター」タブをクリックします)、「自動レイアウト」がチェックされているかどうかを確認します。いいえ。

自動レイアウトがオンの場合、フレームを変更した後でも、制約が再適用され、コントロールは制約によって指定された場所に戻されます。自動レイアウトをオフにするか、自動レイアウトをオンのままにして、プログラムで制約を削除するか、フレームを変更する代わりにプログラムで制約を変更することができます。

制約を変更してアニメーション化する方法の例については、この回答を参照してください。

于 2013-01-21T05:18:24.937 に答える