Pregunta

tengo un UIView que es menor que el supervista para que pueda representar este punto de vista como una vista modal cuando se hace clic en un botón.

He conseguido hacer lo siguiente: * Agregar una vista secundaria a la supervista. * Centrado este punto de vista modal

Ahora estoy tratando de hacer que los elementos detrás de la UIView unclickable. Y también añadir una sombra gris te la ourside de mi punto de vista modal de manera que el usuario entiende que la vista modal es la vista en el enfoque.

Me gustaría saber cómo lograr esto.

No deseo usar la transición presentación modal. Yo sé, y ya se han puesto en práctica esto en otros proyectos. Cualquier ayuda es apreciada.

¿Fue útil?

Solución

Lo más sencillo sería sentar un UIView pantalla completa con un fondo gris translúcido detrás de la vista "modal". A continuación, se interceptará todos los toques. Podría ser algo como esto:

UIView *dimBackgroundView = [[UIView alloc] initWithFrame:theSuperview.bounds];
dimBackgroundView.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:.5f];

[theSuperview addSubview:dimBackgroundView];
[theSuperview addSubview:modalView];

Para referencia futura, se puede establecer myView.userInteractionEnabled = NO a eventos de toque desactivar en una vista.

Otros consejos

Hay varias maneras de hacerlo. Si usted tiene una vista personalizada que tiene ubicación personalizada, puede modificarlo así:

Crear una var ejemplo:

UIView* backgroundView;

Y siempre que lo necesite, lo puso detrás de su vista personalizada:

if (backgroundView == nil)
        backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width)];
backgroundView.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:.5f];
[self.view addSubview:backgroundView];
[backgroundView animateBump:customView.view];
[backgroundView addSubview:customView.view];

Cuando no lo necesita más

   [backgroundView removeFromSuperview];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top