[英]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.