我正在制作一个欢迎屏幕,其中包含两个UITextFields,一个忘记密码按钮和另外两个按钮(signInButton
和createAccountButton
)。这两个按钮与文本字段一起放在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中的错误?
答案 0 :(得分:3)
您很可能正在使用 autolayout
禁用自动布局属性。
发生这种情况的原因:Autolayout将使用当前约束将视图更新为其原始位置。
希望它有所帮助。