簡體   English   中英

UITextField動畫完成,但在用戶觸摸后彈出回到原始位置

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM