Flip анимация игнорирует длительность, т.е. я не могу контролировать скорость - PullRequest
0 голосов
/ 24 мая 2011

Поэтому я пытаюсь переключаться между двумя изображениями, но продолжительность, похоже, игнорируется.Я понимаю, что Apple должна сделать анимацию очень быстро, чтобы сохранить магию, но есть ли способ замедлить переворачивание?

Моя нынешняя иерархия объектов состоит в том, что игровая доска содержит много карт, которые наследуются от UIView.Карта имеет лицевую и оборотную стороны, которые представляют собой UIViews, на которых размещен UIImage и другие данные

[UIView animateWithDuration:15.0 
    animations:^(void) {
        cardOne.center =CGPointMake(100, 100);
        cardTwo.center =CGPointMake(100, 100);

        //low level calls, to directly perform the image swap 
        [cardOne.face removeFromSuperview]; 
        [cardOne addSubview:cardOne.back];
        [cardOne sendSubviewToBack:cardOne.face]; 

        //calling the transitionFromView to do the image swap
        [UIView transitionFromView:cardOne.face 
                            toView:cardOne.back 
                          duration:10 
                           options:UIViewAnimationTransitionFlipFromLeft 
                        completion:^(BOOL finished){ }];

Спасибо за ваш отзывЯ попытался смешать все, что вы вводите, и в итоге все заработало правильно.Я пока не знаю почему.Спасибо за ваши ответы.Я попытался вернуться к старому стилю, и это сработало.Я пока не понял, почему.

Неработающий код закомментирован, а рабочий код оставлен без комментариев.Еще раз спасибо

/*  
[UIView animateWithDuration:animationDuration  
animations:^{  
    [self.face removeFromSuperview];    
    [self addSubview:self.back];  
    [self sendSubviewToBack:self.face];              
}];  
*/

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:kDefaultFlipSpeed];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
                               forView:self
                                 cache:YES];

[self.face removeFromSuperview];
[self addSubview:self.back];
[self sendSubviewToBack: self.face];

[UIView commitAnimations];

1 Ответ

0 голосов
/ 24 мая 2011

Я не могу спросить в комментарии, поэтому: Вы пробовали менее чем за 10 секунд? Точнее между 0-1 секундами. Что-то вроде 0,5 секунды. Сообщите мне, если вы заметили какие-либо изменения в продолжительности с этими значениями.

Мой быстрый ответ: Попробуйте установить 10 секунд как 10.0 или 10.0f.

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

...