Flip animation in sub-UIView don´t found
-
09-06-2021 - |
Question
I want flip movement in my subview. In next method change my subview but without flip animation....
int tag=g.view.tag;
UIViewController* vc2 = [controlersOfTableBoxes objectAtIndex:tag-1];
UIView* viewOfSelf = self.view;
UIViewController* v = [[UIViewController alloc] init];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationDelegate:self];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:v.view cache:NO];
int maxGraphs = [[viewOfSelf subviews] count];
for (int i = 0; i < maxGraphs; i++ )
{
if([[[viewOfSelf subviews] objectAtIndex:i] isKindOfClass:[UIView class]])
{
UIView* v = [[viewOfSelf subviews] objectAtIndex:i];
if(v.tag==tag)
{
[[[viewOfSelf subviews] objectAtIndex:i] removeFromSuperview];
break;
}
}
}
[viewOfSelf addSubview:vc2.view];
v.view = viewOfSelf;
[UIView commitAnimations];
If i change this lines:
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:v.view cache:NO];
for
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:NO];
the movement is in all of screen but i want only in subview in subviewcontroller.
I try to this method:
[UIView animateWithDuration:0.5f delay:0.0f options:UIViewAnimationTransitionFlipFromRight animations:^(void)
{
int tag=g.view.tag;
UIViewController* vc2 = [controlersOfTableBoxes objectAtIndex:tag-1];
UIView* viewOfSelf = self.view;
UIViewController* v = [[UIViewController alloc] init];
int maxGraphs = [[viewOfSelf subviews] count];
for (int i = 0; i < maxGraphs; i++ )
{
if([[[viewOfSelf subviews] objectAtIndex:i] isKindOfClass:[UIView class]])
{
UIView* view = [[viewOfSelf subviews] objectAtIndex:i];
if(view.tag==tag)
{
v.view=view;
[[[viewOfSelf subviews] objectAtIndex:i] removeFromSuperview];
break;
}
}
}
[viewOfSelf addSubview:vc2.view];
v.view = viewOfSelf;
}
completion:^(BOOL finished)
{}];
but the result is the same...
Solution
you can use
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:5];
[UIView transitionFromView:view2 toView:view1 duration:3 options:UIViewAnimationOptionTransitionFlipFromBottom completion:NULL];
[UIView commitAnimations];
try i
nt tag=g.view.tag;
UIViewController* v = [controlersOfBoxes objectAtIndex:tag-1];
UIViewController* vc2 = [controlersOfTableBoxes objectAtIndex:tag-1];
[UIView transitionWithView:vc2.view duration:0.5 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^ { [v.view removeFromSuperview]; [self.view addSubview:vc2.view]; } completion:nil];
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow