2017-08-02 51 views
0

我有一個UITextField搜索框,首先它是隱藏的,我想用動畫顯示它,它的工作原理。但是當我再次隱藏它時,動畫會突然發生,而不是動畫中定義的時間。顯示隱藏的視圖,然後隱藏它與Objective-C中的相同的動畫

這裏是我的代碼:

[UIView transitionWithView:searchbox duration:0.3 
    options:UIViewAnimationOptionTransitionCrossDissolve 
    animations:^{searchbox.hidden = NO;}completion:NULL]; 

    [UIView transitionWithView:searchbox duration:0.3 
    options:UIViewAnimationOptionTransitionCrossDissolve 
    animations:^{searchbox.hidden = YES;}completion:NULL]; 
+0

只是增加其在時間隱藏以查看效果。即使在特定的時間,我的身邊也能很好地工作,但速度更快。 –

回答

0

大多數使用.alpha隱藏或顯示UIView

正確的代碼是:

[UIView transitionWithView:searchbox duration:0.3 
options:UIViewAnimationOptionTransitionCrossDissolve 
animations:^{searchbox.alpha=1;}completion:NULL]; 

[UIView transitionWithView:searchbox duration:0.3 
options:UIViewAnimationOptionTransitionCrossDissolve 
animations:^{searchbox.alpha=0;}completion:NULL]; 
0

應該有你的動畫調用之間的延遲。 下面是一個例子:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(show) userInfo:nil repeats:NO]; 
} 

- (void) show { 
    [UIView transitionWithView:searchbox duration:0.3 
         options:UIViewAnimationOptionTransitionCrossDissolve 
        animations:^{searchbox.hidden = NO;}completion:NULL]; 

    [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(hide) userInfo:nil repeats:NO]; 
} 

- (void) hide { 
    [UIView transitionWithView:searchbox duration:0.3 
         options:UIViewAnimationOptionTransitionCrossDissolve 
        animations:^{searchbox.hidden = YES;}completion:NULL]; 
} 
0

要顯示

searchbox.alpha = 0; 
searchbox.isHidden = NO; 
[UIView transitionWithView:searchbox 
      duration:0.3 
      options:UIViewAnimationOptionTransitionCrossDissolve 
     animations:^{ 
      searchbox.alpha = 1.0 
    }completion:NULL]; 

要隱藏的觀點

searchbox.alpha = 1.0; 
searchbox.isHidden = NO; 
[UIView transitionWithView:searchbox 
      duration:0.3 
      options:UIViewAnimationOptionTransitionCrossDissolve 
     animations:^{ 
      searchbox.alpha = 0 
    }completion:^(isComplete){ 
     if (isComplete) { 
     searchbox.isHidden = YES 
     }}]; 
0

使用alpha屬性,而不是隱藏

[UIView transitionWithView:searchbox duration:0.3 
options:UIViewAnimationOptionTransitionCrossDissolve 
animations:^{searchbox.alpha = 1.0;}completion:NULL]; 

[UIView transitionWithView:searchbox duration:0.3 
options:UIViewAnimationOptionTransitionCrossDissolve 
animations:^{searchbox.alpha = 0;}completion:NULL];