[英]UITextField Animation completes, but then pops back to original spot after user touches
我有三个UITextField
,它们通过setFrame:方法进行动画处理。 动画本身效果很好,但是当用户在屏幕上进行触摸时,问题是在动画之前开始的。 发生的是三个UITextField
消失了。
需要注意的一件事是,当我按下“取消”,然后按下重新实例化动画的按钮时, 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: ...]
来切换setFrame:的调用方式。 否则,我真的想不出任何东西哈哈。
有人有想法吗?
您是否正在使用自动布局(iOS 6功能,该功能根据称为约束的算术规则控制控件的放置)? 要查看是否具有自动布局,请打开情节提要/ NIB,然后按Option + Command - 1转到“文件检查器”(或仅单击最右侧面板上的“文件检查器”选项卡),然后查看是否具有“自动布局”是否检查。
如果启用了自动布局,则即使更改框架后,约束也将重新应用,并且控件将移回到约束所指示的位置。 您可以关闭自动布局,也可以保留自动布局,然后以编程方式删除约束或以编程方式更改约束而不是更改框架。
有关如何通过更改约束进行动画制作的示例,请参见此答案 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.