Cómo agregar una vista detrás de otra vista en iOS

Quiero agregar una vista debajo de mi barra analógica en iOS y luego mostrarla con animation que viene detrás de él. Pero cuando uso mi código, la vista que debe aparecer detrás de mi barra de tabs se superpone a mi barra de tabs por un time.

barra de pestañas y una vista que muestra cuando se presiona el botón de barra de pestañas

Este es mi código:

- (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]; } 

}

Aquí, leftPanelView es la vista que debe aparecer en una barra de tabs. La vista movida es otra vista, es decir, a la derecha del panel izquierdo (no te preocupes)

intente sendSubviewToBack

 [self.view sendSubviewToBack:leftPanelView]; 

Además de addSubview , hay otros methods en los que puede confiar para agregar su vista:

 – insertSubview:aboveSubview: – insertSubview:belowSubview: – insertSubview:atIndex: 

Puede controlar el índice (en realidad z-index, o el order de la capa) de la vista utilizando estos methods.

Oh, yo mismo encontré una solución. Agregué después de esto:

 [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.5]; [self.view addSubview:leftPanelView]; 

esta línea:

 [self.view sendSubviewToBack:leftPanelView];