0

2 つの UITextField、[パスワードを忘れた] ボタン、および 2 つの追加ボタン (signInButtoncreateAccountButton) を含むウェルカム画面を作成しています。inputsViewこれら 2 つのボタンは、テキスト フィールドとともにUIView ( ) に配置されます。

テキスト フィールドの 1 つがフォーカスされるとすぐに、画面をアニメーション化してキーボードに合わせて調整し、createAccountButtonボタンのサイズを変更して、signInButton. 私は次のコードを使用しています:

[UIView animateWithDuration:.48 delay:0 usingSpringWithDamping:1 initialSpringVelocity:.42 options:(UIViewAnimationOptionBeginFromCurrentState) animations:^{

    CGRect f3 = inputsView.frame;
    f3.origin.y = 112;
    inputsView.frame = f3;

    [inputsView layoutSubviews];

    CGRect f4 = createAccountButton.bounds;
    f4.size.width = 160;
    createAccountButton.bounds = f4;

    CGRect f5 = createAccountButton.frame;
    f5.origin.x = 160;
    createAccountButton.frame = f5;

    CGRect f6 = signInButton.frame;
    f6.origin.x = 0;
    signInButton.frame = f6;

    CGRect f7 = buttonSeparator.frame;
    f7.origin.x = 160;
    buttonSeparator.frame = f7;

    [signInButton layoutSubviews];
    [createAccountButton layoutSubviews];

} completion:nil];

これはすべて正常に機能しますが、[パスワードを忘れた場合] ボタンをタップして UIAlertView を開くと、ボタンが元の位置に戻ります。奇妙なことにbuttonSeparator、1px UIView である は元に戻りません。

何か忘れているのでしょうか、それとも iOS 7 SDK のバグですか?

4

1 に答える 1

3

ほとんどの場合、自動レイアウトを使用しています

autolayout プロパティを無効にします。

発生する理由: Autolayout は、現在の制約を使用してビューを元の位置に更新します。

それが役に立てば幸い。

于 2013-11-17T17:42:17.083 に答える