как перевернуть два взгляда одновременно? - PullRequest
0 голосов
/ 19 марта 2012

Я пытаюсь перевернуть два вида на одном экране одним нажатием кнопки, то есть я хочу, чтобы несколько анимаций одновременно (например: музыкальный проигрыватель iPhone, где кнопка и вид переворачиваются одновременно)

PS-я не хочу анимировать представления один за другим, это должно быть сделано вместе

РЕДАКТИРОВАТЬ

это код, который я использовал, пожалуйста, помогите мне

[UIView beginAnimations:nil context:nil];
[UIView animateWithDuration:0.8 animations:^{

    if (viewDisplay) 

    {

        [fareView removeFromSuperview];

        [containerView addSubview:mapView];

        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:containerView cache:YES];

        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:buttonView cache:YES];

        viewDisplay = FALSE;

        swapLabel.text = @"Fare View";

        [mapOrFare setImage:[UIImage imageNamed:@"original_icon.png"] forState:UIControlStateNormal];

    }

    else

    {

        [mapView removeFromSuperview];

        [containerView addSubview:fareView];

        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:containerView cache:YES];

        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:buttonView cache:YES];

        viewDisplay = TRUE;

        swapLabel.text = @"Map View";

        [mapOrFare setImage:[UIImage imageNamed:@"Map.png"] forState:UIControlStateNormal];

    }

}];

[UIView commitAnimations];

Ответы [ 2 ]

3 голосов
/ 19 марта 2012

Предполагая, что bgView1 и bgView2 являются переворачиваемыми представлениями, как показано ниже;Вы должны просто быть в состоянии поместить код аниматора один за другим, и все должно работать нормально.Ниже приведен пример,

-(void)flipViews {

    CGContextRef context = UIGraphicsGetCurrentContext();
    [UIView beginAnimations:nil context:context];
    [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:bgView1 cache:YES];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationDelegate:self];

    [bgView1 exchangeSubviewAtIndex:0 withSubviewAtIndex:1];

    [UIView commitAnimations];


    context = UIGraphicsGetCurrentContext();
    [UIView beginAnimations:nil context:context];
    [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:bgView2 cache:YES];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationDelegate:self];

    [bgView2 exchangeSubviewAtIndex:0 withSubviewAtIndex:1];

    [UIView commitAnimations];

}
1 голос
/ 19 марта 2012

Просто используйте блочную анимацию, она должна работать без проблем.

[UIView animateWithDuration:myDuration
    animations:^{
        <animation 1 code>;
        <animation 2 code>;
}];
...