I want to add a view under my tab bar analog in iOS and then show it with animation coming from behind it. But when I use my code, the view that must come from behind my tab bar overlaps my tab bar for a while.
This is my code:
- (void)handlePressedButton { if (pressedButton.selected) { [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.5]; CGAffineTransform transform1 = CGAffineTransformMakeTranslation(-196.0, 0.0); CGAffineTransform transform2 = CGAffineTransformMakeTranslation(0.0, 0.0); [leftPanelView setTransform:transform1]; [movedView setTransform:transform2]; [UIView commitAnimations]; pressedButton.selected = NO; } else { pressedButton.selected = YES; if (leftPanelView) { [leftPanelView removeFromSuperview]; leftPanelView = nil; } CGRect viewFrame = CGRectMake(-196, 0, 236, 748); leftPanelView = [[UIView alloc] initWithFrame:viewFrame]; leftPanelView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"left-nav-content.png"]]; // Code to populate leftPanelView according to what button is pressed. [self populateLeftPanelView]; [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.5]; [self.view addSubview:leftPanelView]; CGAffineTransform transform1 = CGAffineTransformMakeTranslation(236.0, 0.0); CGAffineTransform transform2 = CGAffineTransformMakeTranslation(112.0, 0.0); [leftPanelView setTransform:transform1]; [movedView setTransform:transform2]; [UIView commitAnimations]; }
}
Here the leftPanelView is the view that must come under a tab bar. Moved view is another view, that is at the right of left panel (don't mind it)
Besides addSubview
, there are other methods you can rely on to add your view:
– insertSubview:aboveSubview: – insertSubview:belowSubview: – insertSubview:atIndex:
You can control the index (actually z-index, or layer order) of the view using these methods.
try sendSubviewToBack
[self.view sendSubviewToBack:leftPanelView];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With