2010-03-16 2 views
1

В принципе, я пытаюсь UIViewAnimationTransitionCurlUp UIButton. Анимация работает отлично, но кнопка остается там.Проблема с кривизной перехода UIButton

i.e. Кнопка загибается, но есть еще один экземпляр кнопки, находящейся под ней.

Мой код выглядит следующим образом:

[UIButton beginAnimations:nil context:nil]; 
[UIButton setAnimationDuration:0.5]; 
[UIButton setAnimationBeginsFromCurrentState:YES]; 
[UIButton setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES]; 
[UIButton commitAnimations]; 

ответ

6

Установить новую кнопку состояние между +beginAnimations и +commitAnimations звонки. Следующая кодовая пряжка нажала кнопку с завитой анимацией:

- (void)btnClick:(id)sender{ 
    [UIButton beginAnimations:nil context:nil]; 
    [UIButton setAnimationDuration:0.5]; 
    [UIButton setAnimationBeginsFromCurrentState:YES]; 
    [UIButton setAnimationTransition:UIViewAnimationTransitionCurlUp 
            forView:(UIView*)sender cache:YES]; 
    ((UIView*)sender).hidden = YES; 

    [UIButton commitAnimations]; 
} 
+0

Это, мой друг, было прекрасно! + 1UP –

2

Вы должны удалить кнопку (скрыть кнопку), когда анимация ends.This должно быть сделано в

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context 

который должен быть установлен в анимации код

как:

[UIButton setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)]; 

Надеюсь, это поможет.

Спасибо,

Madhup

+0

Отлично, приветствия! –

+0

Боюсь, что это все еще работает неправильно - я, очевидно, пропустил что-то простое. –

0

Хорошо, я должен, вероятно, проверил это, прежде чем я голосовала вас ...

Кнопка еще не исчезающий после анимации закончил :(

Мой код теперь:

[UIButton beginAnimations:@"welcomeAnimation" context:nil]; 
[UIButton setAnimationDuration:0.5]; 
[UIButton setAnimationDidStopSelector:@selector(welcomeAnimationDidStop:finished:context:)]; 
[UIButton setAnimationBeginsFromCurrentState:YES]; 
[UIButton setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES]; 
[UIButton commitAnimations]; 

и мой метод:

-(void)welcomeAnimationDidStop:(NSString *)animationID finished:(BOOL *)finished context:(void *)context { 
    welcomeButton.hidden = YES; 
} 
Смежные вопросы