2011-03-13 10 views
6

Tengo dos vistas (UIView) configuración: vista principal e hija. La vista secundaria se muestra en la parte superior de la vista principal, según lo deseado. Sin embargo, ahora necesito agregar subvistas que me gustaría que se muestren debajo de la vista secundaria, pero arriba de la vista principal. ¿Cuál es una manera fácil de mantener la vista del primer hijo en la parte superior al agregar nuevas subvistas? Me gustaría mantener el orden de inserción del nuevo orden de visualización de las subvistas agregadas.cómo mantener una uiview por encima de otras vistas

+0

Consulte [this] (http://stackoverflow.com/questions/1519141/difference-between-addsubview-and-insertsubview-in-uiview-class) pregunta. – phi

Respuesta

10

utilizar cualquiera de los UIView siguientes métodos para controlar la profundidad.

– bringSubviewToFront: 
– sendSubviewToBack: 
– insertSubview:atIndex: 
– insertSubview:aboveSubview: 
– insertSubview:belowSubview: 

Esto está tomado de las View Programming Guide Docs en la sección Ver Jerarquías y subvista Gestión,

Cada supervista almacena sus subvistas en una disposición ordenada y el orden en esa matriz también afecta a la visibilidad de cada subvista . Si dos subvistas de hermanos se superponen entre sí, la última que se agregó (o se movió al final de la matriz de subvista) aparece encima de la otra.
1

Sugeriría crear el método de contenedor para addSubview. Algo como esto:

- (void)insertSubviewBetweenParentAndChild:(UIView *)newChild { 
    [self insertSubview:newChild aboveSubview:parentView]; 
} 
Cuestiones relacionadas