2013-06-26 2 views
1

В моем приложении я хочу дать анимацию UIButtons, так как кнопки будут «выпадать» на экране, когда они скроются.Анимация, чтобы скрыть UIButton в iOS

Я пробовал следующий код, но это не дало мне хорошего результата.

[UIView animateWithDuration:1.5 
       animations:^{ 
        S1Button.frame = CGRectMake(20, 10, 50, 10); 
       }]; 
[S1Button setHidden:YES]; 
break; 
+0

Вы хотите, чтобы кнопка была видна при падении? – AtWork

ответ

5

Вы можете установить новую позицию и скрыть кнопку после анимации.

[UIView animateWithDuration:0.9 animations:^{ 
     tradeButton.frame = (CGRect){ CGPointMake(51, 150), tradeButton.bounds.size }; 
    } completion:^(BOOL finished) { 
     tradeButton.hidden = YES; 
     // etc. 
    }]; 
+0

Это сработало для меня – posha

+0

ohke !! хорошо насладиться!!!! :) – AtWork

+0

@kevin Не забудьте принять ответ. – AtWork

4

Используйте способ анимации, который имеет блок завершения и спрятать кнопку там. В настоящее время ваш метод hide работает сразу, поэтому вы не видите анимацию.

4
[UIView animateWithDuration:1 animations:^{ 
     S1Button.frame = CGRectMake(20, 10, 50, 10); 
    } completion:^(BOOL finished) { 
     [S1Button setHidden:YES]; 
    }] 
1
[UIView animateWithDuration:0.25f 
       animations:^{ 
        S1Button.frame = CGRectMake(20, 10, 50, 10); 
       }completion:^(BOOL completed){ 
        [UIView beginAnimations:nil context:nil]; 
        [UIView setAnimationDuration:.3]; 

        S1Button.alpha = 1; 
        [UIView commitAnimations]; 

    }];  
1

Попробуйте один

To fade out: 

     [UIView animateWithDuration:0.3 animations:^{ 
       button.alpha = 0; 
      } completion: ^(BOOL finished) { 
       button.hidden = YES; 
      }]; 


     To fade in: 


      button.alpha = 0; 
      button.hidden = NO; 
      [UIView animateWithDuration:0.3 animations:^{ 
       button.alpha = 1; 
      }]; 
0

попробовать это:

скрыть кнопку до вашего завершения анимации, без анимации не видно. Итак, замените код следующим образом:

[UIView animateWithDuration:1.5 animations:^{ 
    S1Button.frame = CGRectMake(20, 10, 50, 10); 
} completion:^(BOOL finished) { 
    [S1Button setHidden:YES]; 
}]; 

break; 
1

В вашем коде скрытое свойство Button не является анимированным. Когда этот блок анимации будет запущен, ваша кнопка будет немедленно скрыта, но не будет исчезать/оживить. Соответствующий способ вытеснения UIView состоит в том, чтобы оживить его альфа-свойство от 1.0 до 0.0 следующим образом:

[UIView animateWithDuration:2.0 
          delay:0.0 
         options: UIViewAnimationCurveEaseOut 
        animations:^{S1Button.frame = CGRectMake(20, 10, 50, 10);S1buttonA.alpha = 0;} 
        completion:nil]; 
Смежные вопросы