打开UIAlertView后,动画UIButtons会回弹到原始位置

时间:2013-11-04 13:30:49

标签: ios objective-c animation uiview uialertview

我正在制作一个欢迎屏幕,其中包含两个UITextFields,一个忘记密码按钮和另外两个按钮(signInButtoncreateAccountButton)。这两个按钮与文本字段一起放在UIView(inputsView)中。

只要其中一个文字字段被聚焦,我就会为屏幕设置动画以调整键盘,调整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中的错误?

1 个答案:

答案 0 :(得分:3)

您很可能正在使用 autolayout

禁用自动布局属性。

发生这种情况的原因:Autolayout将使用当前约束将视图更新为其原始位置。

希望它有所帮助。